- cast return value of __sync_val_compare_and_swap to make clang happy
- add __cdecl to a number of intrinsics to make them (hopefully) compatible with crt header declarations.
svn path=/trunk/; revision=47442
- Pass a pointer to a structure, that holds the CallBack procedure and data, as the 5th parameter to NtUserMessageCall.
- Fix a bug In User32CallSendAsyncProcForKernel, the ArgumentLength is the size of SENDASYNCPROC_CALLBACK_ARGUMENTS.
[win32k]
- For types FNID_SENDMESSAGECALLBACK call co_IntSendMessageWithCallBack to put the message in the send queue.
- Rewrite code for when messages have a completioncallback
svn path=/trunk/; revision=47434
[NTOS]: Use MiAllocatePfn in MiLoadImageSection instead of MmAllocPage. Other than doing a better job at initializing the page, it creates our first caller of this function, great for testing, since this is a rather high-demand function, especially at boot.
Please test.
svn path=/trunk/; revision=47432
[NTOS]: Write down the PTE attribute flags for X86/AMD64. Timo/Physicus: Please double-check.
[NTOS]: Write down the array that converts from the MM_ protection flags arleady defined, into the appropriate PTE attribute flags that are architecture-specific.
[NTOS]: This will allow constant-time conversion of NT attributes into PTE attributes. Win32 attributes to NT attributes conversion won't be needed until VAD support.
svn path=/trunk/; revision=47427
Do not use _SEH2_YIELD in NtSetInformationProcess, NtQueryInformationThread and NtSetInformationThread while a thread or process is still being referenced.
svn path=/trunk/; revision=47425
[NTOS]: Implement MiDecrementShareCount (to start replacing MmReleasePageMemoryConsumer calls for pages that were grabbed through ARM3, not Mm).
[NTOS]: Implement MiInitializePfn (to initialize pages grabbed through ARM3/MiRemoveAnyPage instead of Mm/MmAllocPage).
[NTOS]: For stack pages, use new ARM3 PFN alloc/free routines, as a first test/beginning of the new ARM3 ABI.
[NTOS]: Implement and start using the Pending-Deletion PFN flag.
[NTOS]: As a result, for stack pages, the Transition page state will now be seen, and the new routine for re-inserting pages into the free list will now be used. Tracking of page table references is also done now for these pages (but we don't free the PT since this doesn't seem safe yet).
svn path=/trunk/; revision=47424
- Implement BreakOnTermination case for NtQueryInformationProcess and NtSetInformationProcess.
- Implement RtlSetProcessIsCritical.
svn path=/trunk/; revision=47423
- Don't pass device paths to FindFirstFile (similar to r47418)
- Allows to complete files, whose names start like DOS devices (COMx, LPTx. AUX, NUL, CON, etc)
See issue #4848 for more details.
svn path=/trunk/; revision=47421
- Don't pass device path to FindFirstFile, use short path instead
- Join duplicate code to simplify processing
See issue #3575 for more details.
svn path=/trunk/; revision=47418
- Fix stack skipping logic in IofCompleteRequest
- Fixes displaying MULTIPLE_IRP_COMPLETE_REQUESTS bug check
- Patch by lassy with a typo fix by me
svn path=/trunk/; revision=47417
- Initialize Unicode string structure, so that only allocated buffers are freed when leaving the function
- Fixes several heap warnings in kernel32:file test
svn path=/trunk/; revision=47407
- The timer is created usingUserCreateObject. It may be a good idea to save the handle in the timer object so that it can be deleted later.
- Dereference the object before attempting to delete it.
svn path=/trunk/; revision=47393
- Use PnpDetermineResourceListSize to determine the resource list size and remove the broken IopCalculateResourceListSize function
svn path=/trunk/; revision=47390
[NTOS]: Fix caller of IoGetDeviceProperty in pnpres.c to work with new function behavior (which matches WDK documentation and test cases).
[NTOS]: Implement helper function PnpBusTypeGuidGet, should be used later in other PnP code, but now used only for this patch.
[NTOS]: Implement helper function PnpDetermineResourceListSize, ditto. N.B. Current IopCalculateResourceListSize function is broken and callers should use this one instead.
[NTOS]: Implement helper function PpIrpQueryCapabilities, should be used later in device node code, but now only used for this patch.
[NTOS]: Implement helper function PnpDeviceObjectToDeviceInstance, ditto.
Main purpose of this patch is to unblock the new PCIx driver.
svn path=/trunk/; revision=47388
- Remove use of TMRF_DELETEPENDING for deleting timers as this was a bad idea.
Timers need to be deleted immediately as waiting for them to be deleted resulted in some processes running out of handles.
Fixes richedit winetest for editor.
- Add flag TMRF_TIFROMWND for timers created from user mode so the thread stored in the timer object is from the window and not caller.
Fixes an issue where FireFox would not show any of its windows and looked dead.
- When creating and deleting timers, If the window is non null and IDEvent is 0 then the IDEvent is changed to 1.
- When modifying timer list use UserEnter and Leave instead of a Critical Region only.
svn path=/trunk/; revision=47385