- Fix race conditions in read IRP cancellation that resulting in random crashes and hangs
- Fixes MULTIPLE_IRP_COMPLETE_REQUESTS bug checks and failed cancellations resulting in hangs during ntdll:file test
svn path=/trunk/; revision=47470
Use a preprocessor definition for FSRTL_COMMON_FCB_HEADER instead of using an ms extension, that wouldn't work for ISO C
svn path=/trunk/; revision=47466
Make NtDuplicateToken fail if the caller tries to create a new impersonation token with a raised impersonation level. This fixes a winetest.
svn path=/trunk/; revision=47456
- 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