Commit Graph

3516 Commits

Author SHA1 Message Date
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
Sebastian Lackner 8fc2430c2a ntdll: Implement threadpool RaceDll environment variable. 2015-07-02 14:52:44 +09:00
Sebastian Lackner fa114f122b ntdll: Add support for threadpool finalization callback. 2015-07-02 14:52:38 +09:00
Sebastian Lackner e8d4b40386 ntdll/tests: Add tests for threadpool group cancel callback. 2015-07-02 14:52:32 +09:00
Sebastian Lackner 1839ce8697 ntdll: Add support for threadpool group cancel callback. 2015-07-02 14:52:27 +09:00
Sebastian Lackner b75d7f064c ntdll/tests: Add threadpool scheduler tests for work items. 2015-07-01 19:18:16 +09:00