3645 Commits

Author SHA1 Message Date
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
Sebastian Lackner
17cd2a8b24 ntdll/tests: Add basic tests for threadpool work items. 2015-07-01 19:18:16 +09:00
Sebastian Lackner
e4c38f6bad ntdll: Implement threadpool work item functions. 2015-07-01 19:18:15 +09:00
Sebastian Lackner
3606b47139 ntdll/tests: Add tests for TpAllocCleanupGroup and related functions. 2015-07-01 19:18:15 +09:00
Sebastian Lackner
68d92bceed ntdll: Implement threadpool cleanup group functions. 2015-07-01 19:18:14 +09:00
Sebastian Lackner
7d9ec31e19 ntdll: Implement TpSetPoolMinThreads. 2015-07-01 19:18:14 +09:00
Sebastian Lackner
d56984a03d ntdll: Implement TpSetPoolMaxThreads. 2015-07-01 19:18:13 +09:00
Sebastian Lackner
db9fc9141e ntdll: Implement TpSimpleTryPost and basic threadpool infrastructure. 2015-07-01 19:18:13 +09:00
André Hentschel
d37f407645 ntdll: Silence warning about TAPE_GetStatus when sys/mtio.h is not available. 2015-06-30 14:42:13 +09:00
Sebastian Lackner
d082ea3eab ntdll: Implement support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection. 2015-06-26 20:35:05 +09:00
Sebastian Lackner
7a8470ea94 ntdll: NtMapViewOfSection should fail if both addr_ptr and zero_bits is set. 2015-06-26 20:35:05 +09:00
André Hentschel
8d4917e865 include: Add IMAGE_LOAD_CONFIG_DIRECTORY64 definition. 2015-06-24 15:37:02 +09:00
Nikolay Sivov
0824771423 kernel32: Export RtlCopyMemory(). 2015-06-19 19:10:45 +09:00
André Hentschel
1133295267 ntdll: Set TPIDRURW inline on ARM. 2015-06-17 18:19:55 +09:00
André Hentschel
aa139d3e86 ntdll: Set platform register x18 to TEB on ARM64. 2015-06-17 18:19:55 +09:00
Mohamed Mediouni
2b095beace ntdll: Multiply r4 with the word size in ARM for __chkstk. 2015-06-16 23:56:44 +09:00
André Hentschel
bef85a14f6 ntdll: Fix CONTEXT_ARM in RtlCaptureContext. 2015-06-15 15:29:03 +09:00
André Hentschel
cd258bef79 ntdll: Implement RtlCaptureContext on ARM64. 2015-06-15 15:29:03 +09:00
André Hentschel
bd1f7ef186 include: Rename 64-bit PState to 32-bit Cpsr on ARM64. 2015-06-15 14:51:33 +09:00
Erich E. Hoover
cdefae9ef2 ntdll: Fix IOCTL_DVD_READ_STRUCTURE expected output size. 2015-06-15 14:50:19 +09:00
Ken Thomases
3b74ac0f08 ntdll: Fix the "not found" status set by read_directory_stat() and read_directory_getattrlist() for when restart_scan is set. 2015-06-12 21:22:42 +09:00
Ken Thomases
e7fa766378 Revert "ntdll: Avoid one of the calls to getattrlist() when read_directory_getattrlist() checks the case sensitivity of the file system.".
This was wrong-headed and could never have worked.  The second getattrlist()
call that I was trying to avoid was only necessary when the first fails.  Given
that the first failed, its results can't be used to avoid the second, no matter
what information we requested.

This reverts commit 5514df9d4e4c14cafcc4284e12d26ad6c74709fe.
2015-06-12 21:22:42 +09:00