Piotr Caban
18d9ca872a
ntdll: Fix modules order in InInitializationOrderModuleList.
2015-08-12 22:54:42 +09:00
André Hentschel
ccc91f25c6
ntdll: Fix stack alignment on ARM64.
2015-08-12 22:54:13 +09:00
Francois Gouget
f8a7d6ed74
Assorted spelling fixes.
2015-08-07 23:50:48 +09:00
Francois Gouget
e0e2ee3487
ntdll: Add a trailing '\n' to a FIXME() trace.
2015-08-07 23:50:20 +09:00
Francois Gouget
93a7845ae8
ntdll: Use #ifdef to check for potentially undefined macros.
2015-08-07 23:44:30 +09:00
Sebastian Lackner
3977ebafc0
ntdll: Lookup DynamicDST based on current year, instead of year of daylight date.
...
When there are no further time changes, the function find_dst_change() will
return (year_end + 1). This patch ensures that we don't lookup the wrong
DynamicDST entry in such a case.
2015-08-04 09:45:28 +02:00
Sebastian Lackner
1050988997
ntdll: Improve stub for NtQueryInformationJobObject.
2015-07-31 12:08:09 +02:00
Sebastian Lackner
905bf79337
server: Store correct entry point for first thread.
2015-07-30 11:37:15 +02:00
Sebastian Lackner
6e66c12c68
ntdll: Validate SecurityCookie pointer before accessing cookie value.
2015-07-30 11:36:21 +02:00
Sebastian Lackner
5bd9d58016
ntdll: Mark newly spawned worker threads as busy.
2015-07-29 22:23:56 +02:00
Martin Storsjo
2a904d3bb3
ntdll: Handle partial image load config structs.
2015-07-29 21:44:03 +02:00
Sebastian Lackner
22f0611cf9
ntdll/tests: Add tests for ThreadQuerySetWin32StartAddress info class.
2015-07-29 21:44:03 +02:00
Sebastian Lackner
845164004b
ntdll: Implement ThreadQuerySetWin32StartAddress info class in NtQueryInformationThread.
2015-07-29 21:44:03 +02:00
Sebastian Lackner
6ab494ceb5
ntdll: Implement ThreadQuerySetWin32StartAddress info class in NtSetInformationThread.
2015-07-29 21:44:03 +02:00
Sebastian Lackner
6156cf3134
server: Use a separate wineserver call to fetch thread times.
2015-07-29 21:44:03 +02:00
Sebastian Lackner
9562e81810
ntdll: Reimplement RtlQueueWorkItem on top of new threadpool API.
2015-07-28 09:54:18 +02:00
Sebastian Lackner
c774a8c3ae
ntdll/tests: Add basic tests for RtlQueueWorkItem.
2015-07-28 09:54:05 +02:00
Sebastian Lackner
4a1629c411
ntdll: Avoid possible deadlock by using _exit() in NtTerminateProcess.
...
When threads are killed with SIGQUIT some locks can be in an undefined
state, and it not safe to call exit handlers.
2015-07-17 14:29:04 +09:00
Dmitry Timoshkov
21c3724813
ntdll: Cache contents of IMAGE_TLS_DIRECTORY instead of saving a directory pointer.
2015-07-15 15:13:16 +09:00
Erich E. Hoover
e9d7cf99ad
ntdll: Only set the security cookie if it has not already been set.
2015-07-14 16:43:30 +09:00
Alasdair Sinclair
241b3928b1
ntdll: Add missing WINAPI to RtlDecompressFragment.
2015-07-14 14:54:54 +09:00
Sebastian Lackner
b687fee66f
ntdll: Fix incorrect assignment in assert statement (Coverity).
2015-07-13 14:44:40 +09:00
Sebastian Lackner
db1e8a686e
ntdll/tests: Add tests for RtlDecompressFragment.
2015-07-10 14:54:57 +09:00
Sebastian Lackner
0e7bd45571
ntdll/tests: Add tests for RtlDecompressBuffer.
2015-07-10 14:54:54 +09:00
Sebastian Lackner
e3503799d9
ntdll: Implement RtlDecompressFragment.
...
Based on a patch by Michael Müller.
2015-07-10 14:54:50 +09:00
Sebastian Lackner
577332f612
ntdll: Implement semi-stub for RtlGetCompressionWorkSpaceSize.
2015-07-09 17:34:48 +09:00
Sebastian Lackner
ee899dc55e
ntdll/tests: Add tests for RtlGetCompressionWorkSpaceSize.
2015-07-09 17:34:46 +09:00
Sebastian Lackner
275424e939
ntdll: Implement semi-stub for LZNT1 compression in RtlCompressBuffer.
...
This stub implementation just emits uncompressed blocks with
appropriate chunk headers.
2015-07-09 17:34:41 +09:00
Sebastian Lackner
025ea11dc4
ntdll/tests: Add tests for RtlCompressBuffer.
2015-07-09 17:34:37 +09:00
André Hentschel
7e1c886fbf
ntdll: Randomize security cookie when available.
2015-07-08 16:20:06 +09:00
Sebastian Lackner
f65f645c3f
ntdll: Add missing calls to RtlExitUserThread.
2015-07-08 16:02:24 +09:00
Sebastian Lackner
0021569778
ntdll: Try to merge threadpool wait queue buckets if possible.
...
When the number of elements per bucket is too small, then try to reduce
the number of threads by merging buckets. This is to ensure that the
number of running wait queue threads doesn't get too big.
2015-07-06 14:49:39 +09:00
Sebastian Lackner
634bbed3fb
ntdll/tests: Add threadpool wait tests with more than 63 objects.
2015-07-06 14:49:39 +09:00
Sebastian Lackner
553ae488d0
ntdll/tests: Add basic tests for threadpool wait objects.
2015-07-06 14:49:39 +09:00
Sebastian Lackner
185247576b
ntdll: Implement TpSetWait and TpWaitForWait.
2015-07-06 14:49:39 +09:00
Sebastian Lackner
f1be5dcac0
ntdll: Implement threadpool wait queues.
...
To implement waiting for an arbitrary number of handles, we group them
in buckets up to (MAXIMUM_WAIT_OBJECTS - 1) objects, and then assign a
dedicated wait queue thread. The last handle is used to notify about
changes.
2015-07-06 14:49:38 +09:00
Sebastian Lackner
4523a54c62
ntdll: Implement TpAllocWait and TpReleaseWait.
2015-07-06 14:34:20 +09:00
Sebastian Lackner
9f71015a99
ntdll/tests: Add tests for threadpool timer merging.
2015-07-03 13:06:50 +09:00
Sebastian Lackner
aefb85ddab
ntdll/tests: Add basic tests for threadpool timer functions.
2015-07-03 13:06:45 +09:00
Sebastian Lackner
cb2aae1af8
ntdll: Implement threadpool timer queues.
2015-07-03 13:06:41 +09:00
Sebastian Lackner
bd7cb07358
ntdll: Implement TpAllocTimer and TpReleaseTimer.
2015-07-03 13:06:31 +09:00
Sebastian Lackner
66c46e6960
ntdll/tests: Add tests for TpDisassociateCallback.
2015-07-03 13:06:21 +09:00
Sebastian Lackner
775d3dcecb
ntdll: Implement TpDisassociateCallback and add a separate group completion event.
2015-07-03 13:06:15 +09:00
Sebastian Lackner
8965511957
ntdll: Implement TpCallbackUnloadDllOnCompletion.
2015-07-02 14:54:13 +09:00
Sebastian Lackner
15110b1770
ntdll: Implement TpCallbackSetEventOnCompletion.
2015-07-02 14:54:04 +09:00
Sebastian Lackner
3dc1c6442a
ntdll/tests: Add tests for TpCallbackReleaseSemaphoreOnCompletion and finalization callback.
2015-07-02 14:53:56 +09:00
Sebastian Lackner
eb39cb1323
ntdll: Implement TpCallbackReleaseSemaphoreOnCompletion.
2015-07-02 14:53:50 +09:00
Sebastian Lackner
02ee5bb52d
ntdll: Implement TpCallbackReleaseMutexOnCompletion.
...
Various internal details about the order and error handling of completion
actions are documented in "Concurrent Programming on Windows" by Joe Duffy.
2015-07-02 14:53:41 +09:00
Sebastian Lackner
a9dd37be68
ntdll: Implement TpCallbackLeaveCriticalSectionOnCompletion.
...
An instance can only have one completion of each type, trying to add a
second one leads to an exception on Windows.
2015-07-02 14:53:21 +09:00
Sebastian Lackner
eb974bcd7a
ntdll: Implement instance objects and the TpCallbackMayRunLong function.
...
The instance is marked as long-running even if TpCallbackMayRunLong fails,
a second call will lead to an exception on Windows.
2015-07-02 14:53:02 +09:00