Commit Graph

3759 Commits

Author SHA1 Message Date
Sebastian Lackner 7c46763ea7 ntdll: Implement RtlIsCriticalSectionLocked[ByThread].
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:47:34 +09:00
Sebastian Lackner b028f2c076 ntdll/tests: Add tests for RtlIsCriticalSectionLocked[ByThread].
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:47:23 +09:00
Sebastian Lackner ea87d1c317 ntdll: Synchronize Nt and Zw exports.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:47:16 +09:00
Sebastian Lackner 381c034be3 ntdll: Wait_thread_proc should not terminate on user APC.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 20:56:27 +09:00
Sebastian Lackner e37cdbbc2c ntdll/tests: Add Sleep to make threadpool wait tests more reliable.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 20:56:17 +09:00
Jacek Caban 19e16319b8 ntdll: Initialize PEB SessionId to 1.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 21:32:40 +09:00
Sebastian Lackner b8315e87f1 ntdll/tests: Add tests for calling NtReadFile/NtWriteFile on directory.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 20:17:05 +09:00
Sebastian Lackner 0b1204d870 ntdll/tests: Add tests for RtlRegisterWait.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-07 13:27:23 +09:00
Sebastian Lackner f97a18f8c0 ntdll/tests: Limit number of pool threads to avoid random test failures.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-07 13:27:23 +09:00
Sebastian Lackner 53c8345c6d ntdll/tests: Fix test failures on Windows 10.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-07 13:27:23 +09:00
Francois Gouget 67c2e06fcd ntdll: Work around a conflict between Wine and Solaris list.h.
Signed-off-by: Francois Gouget <fgouget@free.fr>
2015-10-05 22:27:16 +09:00
Michael Müller 00d966cd3a ntdll: Return STATUS_OBJECT_NAME_INVALID in wine_nt_to_unix_file_name for prefix-only paths.
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-02 18:11:31 +09:00
Michael Müller 24ea49b6ab ntdll/tests: Add additional tests for NtQueryFullAttributesFile.
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-02 18:11:31 +09:00
Michael Müller 55ae09068b ntdll: Implement ThreadGroupInformation class.
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-02 18:11:31 +09:00
Charles Davis 476d97b0ee ntdll: Use an __ms_va_list in sscanf (Clang).
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
2015-10-01 23:18:43 +09:00
Dmitry Timoshkov 7d2cd2fe61 ntdll: Print process id in the loader log if requested.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-01 23:08:13 +09:00
Dmitry Timoshkov 451156b4fa ntdll: Print process id in the relay log if requested.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-01 23:08:12 +09:00
Sebastian Lackner 6d9cf49103 ntdll: Ignore higher bits in selector for ThreadDescriptorTableEntry info query.
Fixes a random test failure in kernel32/thread tests caused by the
uninitialized HIWORD.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-09-25 21:03:17 +02:00
André Hentschel c6b888f16f ntdll/tests: Simplify the RtlRandom test. 2015-09-25 20:59:55 +02:00
Lauri Kenttä b3d51fb78b ntdll/tests: Fix error message. 2015-09-15 17:00:32 +09:00
Thomas Faller d90f25156c ntdll: Fix invalid use of uninitialized memory. 2015-09-09 17:46:24 +09:00
Jacek Caban 719a7d32c5 ntdll: Added new pid debug channel to append process id to debug output. 2015-08-25 21:13:22 +09:00
Michael Müller 75c9da68e2 ntdll: Use helper function for NtWaitForMultipleObjects and NtWaitForSingleObject. 2015-08-24 18:41:34 +09:00
Sebastian Lackner ec851647e2 server: Implement open_file_object for rootdir pointing to file object. 2015-08-21 14:39:21 +09:00
Sebastian Lackner 84d2610aaf ntdll/tests: Add additional tests for calling NtOpenFile with file object as RootDirectory. 2015-08-21 14:36:12 +09:00
Sebastian Lackner 1f2a443cb4 server: Implement support for FileLinkInformation class in NtSetInformationFile. 2015-08-21 14:36:02 +09:00
Qian Hong 57d443824a ntdll/tests: Add tests for FileLinkInformation class.
Based on the FileRenameInformation tests by Sebastian Lackner.
2015-08-21 14:35:18 +09:00
Sebastian Lackner 857d436784 ntdll: Implement FileRenameInformation support. 2015-08-20 18:34:13 +09:00
Sebastian Lackner 6899eade5d ntdll/tests: Add additional tests for FileRenameInformation. 2015-08-20 18:33:45 +09:00
Jianqiu Zhang a5b58144a5 ntdll/tests: Add basic tests for FileRenameInformation. 2015-08-20 18:33:39 +09:00
Dmitry Timoshkov 7386de357f ntdll: Do not fail to relocate an image if the size of relocation block is 0. 2015-08-20 14:32:32 +09:00
Erich E. Hoover 6955a298f4 server: Do not permit FileDispositionInformation to delete a file without write access. 2015-08-19 20:19:58 +09:00
Sebastian Lackner 0fabfe7d6b server: Add support for setting file disposition information.
Based on a patch by Dmitry Timoshkov.
2015-08-19 20:19:57 +09:00
Dmitry Timoshkov e67a00b466 ntdll: Separate image relocation from NtMapViewOfSection. 2015-08-18 19:56:48 +09:00
Andrey Gusev 5cdcd4493f Assorted spelling and typos fixes. 2015-08-18 15:00:13 +09:00
André Hentschel c4cd981a61 ntdll/tests: Add ARM64 support for map protection tests. 2015-08-17 16:59:32 +09:00
André Hentschel 27bf278d72 ntdll: Add support for Win 10. 2015-08-13 15:04:29 +09:00
Sebastian Lackner 38076fa633 ntdll: Move cookie initialization code from memory management to loader. 2015-08-12 22:58:28 +09:00
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
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 5514df9d4e.
2015-06-12 21:22:42 +09:00
Sebastian Lackner bdef5c5508 ntdll/tests: Add tests for info struct size for FileDispositionInformation. 2015-06-11 15:32:30 +09:00
Sebastian Lackner 8ddab2c2f4 ntdll: Fix status code when NtMapViewOfSection parameter check fails. 2015-06-08 15:34:04 +09:00
Ken Thomases 82dd799d52 ntdll: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM. 2015-06-05 18:40:39 +09:00
Ken Thomases bbcfa6b4ee ntdll: Add support for using libunwind to unwind the stack for x86_64.
On OS X, Apple uses compact unwind info in preference to DWARF unwind info.
2015-06-05 15:08:02 +09:00
Qian Hong ef3ed04cdc server: Fix type name of directory file. 2015-06-05 14:32:27 +09:00
Qian Hong f208c50cc0 server: Fix type name of File. 2015-06-05 14:32:23 +09:00
Qian Hong bdc223ad39 server: Fix type name of IoCompletion. 2015-06-05 14:32:15 +09:00
Qian Hong 7a7fc1e604 ntdll/tests: Add a few more ObjectTypeInformation tests. 2015-06-05 14:32:11 +09:00
Qian Hong 71080cc081 ntdll: Implemenent ObjectTypeInformation class support in NtQueryObject. 2015-06-05 14:32:01 +09:00
Sebastian Lackner d6a044c86a ntdll/tests: Don't call lstrlenW on non-null-terminated buffer. 2015-06-05 14:11:10 +09:00
André Hentschel c13be7446e ntdll: Fix returning from various ARM assembler functions. 2015-05-29 15:03:06 +09:00
André Hentschel a18f84c0b1 ntdll: Add stub for __chkstk on ARM. 2015-05-29 15:03:05 +09:00
André Hentschel 8e0164bd26 include: Add more ARM64 CV constants. 2015-05-28 14:20:55 +09:00
Jactry Zeng c9e1b6fb57 ntdll/tests: Test opening a directory with NULL ObjectName. 2015-05-27 17:13:08 +09:00
Ken Thomases 5514df9d4e ntdll: Avoid one of the calls to getattrlist() when read_directory_getattrlist() checks the case sensitivity of the file system.
Extract a new function, get_dir_case_sensitivity_attr_by_id(), from
get_dir_case_sensitivity_attr().  Call that instead of get_dir_case_sensitivity()
from read_directory_getattrlist().  We get the device and file system IDs from
the same getattrlist() call we're already doing, so that avoids an extra call.
2015-05-22 14:11:03 +09:00
André Hentschel dec7b246f8 ntdll: Add ARMv8 detection for ARM32. 2015-05-22 14:10:29 +09:00
André Hentschel b5b34220cc ntdll: Parse ARM64 CPU info. 2015-05-22 14:10:27 +09:00
Alexandre Julliard ee1528040e ntdll: Remove the special case for the NUL device. 2015-05-21 17:38:19 +09:00
Alexandre Julliard 950c82094b ntdll: Add support for file I/O on device files. 2015-05-21 17:38:04 +09:00
Alexandre Julliard c0ac2afb19 server: Create the null device and its symlink. 2015-05-21 17:24:34 +09:00
André Hentschel 74ef3af73d ntdll: Use the correct arch value for ARM64. 2015-05-21 14:23:45 +09:00
Ken Thomases bb89f10e5e ntdll: Fix read_directory_getattrlist() to get the name of a symlink rather than its target, but still detect if the symlink is broken. 2015-05-21 13:59:56 +09:00
Ken Thomases 5c98448aa3 ntdll: If read_directory_getattrlist() finds that the file doesn't exist, return successful "no file" result to stop search. 2015-05-21 13:58:01 +09:00
Ken Thomases f6926b3515 ntdll: Increase name buffer size in read_directory_getattrlist() for UTF-8 encoding.
The docs for getattrlist() say that ATTR_CMN_NAME can return up to NAME_MAX + 1
Unicode characters (code points) encoded in UTF-8, which means it can be up to
NAME_MAX * 3 + 1 bytes.
2015-05-21 13:57:45 +09:00
Sebastian Lackner 39abfc4d74 ntdll: Add stub for NtImpersonateAnonymousToken. 2015-05-21 13:57:05 +09:00
Matteo Bruni cb5c92f33c ntdll/tests: Add a test for filename casing with NtQueryDirectoryFile(). 2015-05-20 17:32:19 +09:00
Matteo Bruni 2f0febe60a ntdll: Ignore positive matches in read_directory_stat() for case-insensitive filesystems.
It's necessary to return the actual filename with correct casing and a
plain stat doesn't allow that. Make read_directory_stat() return the
result of the stat() call on a case-insensitive filesystem only when the
file is missing.
2015-05-20 17:32:16 +09:00
Matteo Bruni 5d65b9d0c2 ntdll: Implement a read_directory_getattrlist() function.
When searching for a specific filename on a case-insensitive filesystem
we first try with stat(). If stat() does find the file we currently
return the requested filename back.

That presents an issue when the application cares about the casing of the
actual file stored on-disk. Specifically, NtQueryDirectoryFile is
supposed to return the actual filename with correct casing.

One possible solution to the issue, without having to resort to manually
scanning the directory entries, is to make use of the OS X getattrlist()
function, since it can return the filename stored on the filesystem.
2015-05-20 17:32:09 +09:00
Alexandre Julliard 871ab51233 ntdll/tests: Use the correct flags for NtOpenFile. 2015-05-18 17:50:22 +09:00
Sebastian Lackner b3913c4f77 ntdll/tests: Add tests for accessing \\Device\\Null. 2015-05-18 17:42:46 +09:00
Huw Davies d6d703b592 ntdll/tests: Fix incorrect prototype. 2015-05-15 21:58:06 +09:00
Huw Davies 14c53a5863 ntdll/tests: Wait for pending file operations to complete. 2015-05-14 20:06:06 +09:00
Nikolay Sivov 2c98d5b90c kernel32: Implement GetDynamicTimeZoneInformation(). 2015-05-11 15:39:24 +09:00
Qian Hong ac86cb9eba ntdll/tests: Fixed typo. 2015-05-08 14:54:52 +09:00
André Hentschel f78bd7f4d9 ntdll: Enable wow64 on ARM64. 2015-05-08 14:54:47 +09:00
Alexandre Julliard 193667ecd7 ntdll: Fix handling of async cancellation for directory changes. 2015-05-07 16:02:26 +09:00
Alexandre Julliard 38b7c8839c ntdll: Don't run user APCs in NtCancelIoFile. 2015-05-07 15:38:57 +09:00
Sebastian Lackner e40e5661ee ntdll/tests: Add/remove todo_wine to avoid test failures. 2015-05-07 14:55:25 +09:00
Josh DuBois 44182ffb5b ntdll: Avoid movs between rcx, rdx and xmm registers.
Apple's version of as chokes on movs between rcx and rdx and the xmm
registers.
2015-05-06 20:44:58 +09:00
Alexandre Julliard c07a0561db ntdll: Fallback to server calls for read and write on objects without a file descriptor. 2015-05-06 17:16:48 +09:00
Alexandre Julliard 860091d2fd server: Add an async structure to the flush request to follow the common pattern. 2015-05-06 17:16:15 +09:00
Alexandre Julliard 165dd1ff36 server: Rename ioctl to irp to allow supporting various types of I/O requests. 2015-05-06 08:44:29 +09:00
Sebastian Lackner ee6a477cab ntdll: Return failure in NtProtectVirtualMemory when last argument is omitted. 2015-05-05 23:15:31 +09:00
Sebastian Lackner 64ee8a4a53 ntdll: Do not omit mandatory argument for VirtualProtect. 2015-05-04 20:07:58 +09:00
Sebastian Lackner 40c912b4be ntdll: Use lockfree implementation for get_cached_fd. 2015-05-04 16:22:38 +09:00
Michael Müller 7567db85be ntdll: Add support for Dynamic DST (daylight saving time) information in registry. 2015-04-28 15:37:54 +09:00
Thomas Faber 3d9693fa61 ntdll/tests: Avoid printing an unterminated string (DPH). 2015-04-24 14:30:04 +09:00
Jianqiu Zhang 4c41f2bb52 ntdll/tests: Add test for FileFsFullSizeInformation. 2015-04-23 20:43:19 +09:00
Stefan Leichter a9ae8dbf14 ntdll: Add stub for WinSqmIsOptedIn. 2015-04-22 14:02:21 +09:00
Thomas Faber bb781b4468 ntdll/tests: Ensure 4-byte alignment for ATOM_BASIC_INFORMATION. 2015-04-22 14:00:48 +09:00
Qian Hong 604c4dba80 ntdll: Correctly document the offset of ntdll_thread_data.
This is a follow up of 16ddc62405.
2015-04-21 14:30:45 +09:00
Marcus Meissner 33d4125a8f ntdll: Potential buffer overwrite (Coverity). 2015-04-20 14:38:41 +09:00
Andrew Cook 1d359a5827 server: Implement TerminateJobObject. 2015-04-07 23:15:47 +09:00
Andrew Cook 4113fd875c ntdll: Return success for JobObjectBasicUIRestrictions. 2015-04-06 16:06:25 +09:00
Andrew Cook 5d85f57814 server: Track handle count of objects. 2015-04-03 17:07:37 +09:00
Sebastian Lackner 33c3990e4d ntdll: Fix various bugs RtlUnwindEx on x86_64. 2015-04-03 17:07:36 +09:00
Andrew Cook 47ffeaee74 server: Implement io completion messages for job objects. 2015-04-03 00:33:29 +09:00
Andrew Cook ecd41d1de7 server: Implement job limit flags. 2015-04-03 00:33:29 +09:00
Andrew Cook 3affd63b34 server: Implement IsProcessInJob. 2015-04-01 22:34:19 +09:00
Andrew Cook 98132f0364 server: Implement AssignProcessToJobObject. 2015-04-01 22:34:18 +09:00
Andrew Cook 0e78b0248d server: Implement CreateJobObject. 2015-04-01 17:05:44 +09:00
Mark Harmstone 104161cfd2 ntdll: Treat strings as case-insensitive in find_window_class. 2015-03-31 00:04:44 +09:00
Piotr Caban 966c5dffed ntdll: Improve parameter validation in RtlAddAce. 2015-03-30 20:03:44 +09:00
André Hentschel 472340052a ntdll: Get available CPU info from FreeBSD on ARM. 2015-03-27 21:28:52 +09:00
André Hentschel 2b5deddc05 ntdll: Fix CPU level on ARM. 2015-03-27 21:28:48 +09:00
André Hentschel a29ca210e6 ntdll: Add support for FreeBSD on ARM. 2015-03-27 21:28:44 +09:00
Michael Müller 64c48d0e63 ntdll: Define a couple more information classes. 2015-03-26 14:20:48 +09:00
Francois Gouget f505e6fb4a Assorted spelling fixes. 2015-03-19 21:54:14 +09:00
Sebastian Lackner 5f49f07d49 ntdll: Handle write watches in virtual_uninterrupted_write_memory. 2015-03-19 17:06:29 +09:00
Sebastian Lackner ab91c01112 ntdll: RtlFindActivationContextSectionString should accept a NULL pointer as data. 2015-03-17 16:02:25 +09:00
Sebastian Lackner 41b24f2168 ntdll: Move all structs and definitions to the beginning in threadpool.c. 2015-03-17 14:52:07 +09:00
Francois Gouget 872e96fc4e ntdll/tests: Remove an unneeded NONAMELESSSTRUCT directive. 2015-03-16 15:04:52 +09:00
Francois Gouget ca1545cf17 ntdll: Remove unneeded NONAMELESSXXX directives. 2015-03-16 15:04:50 +09:00
Sebastian Lackner 2daca626d4 ntdll: Implement [Nt|Zw]QueryLicenseValue. 2015-03-13 21:53:25 +09:00
Qian Hong c61407f651 ntdll: Removed incorrect stub message in NtQueryObject and NtSetInformationObject. 2015-03-11 12:42:35 +09:00
Sebastian Lackner ae309c2d00 ntdll: Move static threadpool variables into a struct. 2015-03-10 15:33:20 +09:00
Qian Hong 2a098ab8a8 ntdll: Implemented FileNetworkOpenInformation class support in NtQueryInformationFile. 2015-03-10 15:18:13 +09:00
Sebastian Lackner bf65fef8bc ntdll: Assert when trying to replace an exiting file descriptor in fd_cache. 2015-03-04 21:50:38 +09:00
Sebastian Lackner b282a937e2 ntdll/tests: Add tests for TpSimpleTryPost function. 2015-03-03 17:11:25 +09:00
Sebastian Lackner d336f1fe68 ntdll/tests: Add tests for NtQueryLicenseKey. 2015-03-03 17:10:37 +09:00
Alexandre Julliard 1146e251fc ntdll: Avoid the intermediate user APC callback. 2015-03-03 17:02:04 +09:00
Alexandre Julliard 0a241b0fcc ntdll: Allow specifying the user APC argument in the system APC callback. 2015-03-03 17:02:03 +09:00
Alexandre Julliard 8843bc144d server: Allow passing an argument for the user APC async I/O callbacks. 2015-03-03 17:02:03 +09:00
Alexandre Julliard 577cb166d4 ntdll: Don't queue a user APC when there is no callback function. 2015-03-02 23:00:29 +09:00
Alexandre Julliard ff84bf8bdd ntdll: Move NtNotifyChangeDirectoryFile to file.c and make it use the standard fileio structure. 2015-03-02 23:00:28 +09:00
Alexandre Julliard 4f43d743e0 ntdll: Use the fileio structure and callback also for ioctl calls. 2015-03-02 23:00:27 +09:00
Sebastian Lackner 6bec132c7a ntdll: Try to handle write-watches while we're on the signal stack. 2015-02-27 14:59:08 +09:00
Uwe Bonnes 2148248976 ntdll: Add more serial speed settings. 2015-02-13 18:20:33 +09:00
Charles Davis 97bda9a05f ntdll: Support 64-bit Mac OS. 2015-02-06 22:35:17 +09:00
Hans Leidekker faf70e2fbd ntdll: Fix calculation of process and thread affinity masks on systems with a large number of processors. 2015-01-21 15:31:16 +01:00
Michael Stefaniuc 52e665a3bd ntdll/tests: Remove unused assigments (PVS-Studio). 2015-01-19 14:31:25 +01:00
Qian Hong cffd86f195 ntdll: Make RtlAddVectoredExceptionHandler hotpatchable. 2015-01-16 16:52:20 +01:00
Qian Hong d45bda3014 ntdll: Fixed buffer size checking for ProcessWow64Information on 64bit in NtQueryInformationProcess. 2015-01-15 11:39:42 +01:00
Nikolay Sivov 7a612654dc ntdll: Skip context dependencies that have allowDelayedBinding attribute set. 2014-12-31 21:13:31 +01:00
Nikolay Sivov c134466224 ntdll: Fix 'description' element parsing to allow empty elements. 2014-12-28 19:08:47 +01:00
Nikolay Sivov 37c179794e ntdll: Accept asm.v2 as default namespace. 2014-12-28 19:08:23 +01:00
André Hentschel 9598a39bdb ntdll: Always define UTIME_OMIT if not yet defined. 2014-12-23 20:43:01 +01:00
Sergey Kalinichev 7eed378f5d ntdll: Add stub for RtlSetHeapInformation. 2014-12-19 22:36:17 +01:00
Erich E. Hoover ca51e113e4 ntdll: Unify retrieving the attributes of a file. 2014-12-17 19:42:23 +01:00
André Hentschel 550f556dca ntdll: Remove unused macros. 2014-12-09 19:36:06 +01:00
Piotr Caban f87767bc35 ntdll: Handle ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID flag when opening manifest in RtlCreateActivationContext. 2014-11-28 17:04:07 +01:00
Sebastian Lackner 275ee4b376 ntdll: Implement Rtl[Add|Remove]VectoredContinueHandler semi-stubs. 2014-11-14 14:16:30 +09:00
Sebastian Lackner 009b6a25bb ntdll/tests: Add basic tests for Rtl[Add|Remove]VectoredContinueHandler. 2014-11-14 14:16:27 +09:00
André Hentschel 8fd7c73a2b ntdll/tests: Get rid of "defined but not used" warnings on non-x86(_64) platforms. 2014-11-13 18:46:38 +09:00
Austin English 4c0ceacee0 ntdll: Add stubs for vectored continue handler. 2014-11-13 16:31:49 +09:00
Hans Leidekker b31ed58b96 server: Set the security descriptor of named pipe objects. 2014-11-12 21:09:50 +09:00
André Hentschel d978dcedd5 ntdll/tests: Clarify ok() conditions (PVS-Studio). 2014-11-11 14:21:31 +09:00
Sebastian Lackner 1c1e7ed016 ntdll: Add support for ATL thunk 'POP ecx; POP eax; PUSH ecx; JMP 4(%eax)'. 2014-10-21 18:51:05 +09:00
Sebastian Lackner dcd2b0a366 ntdll: Add support for ATL thunk 'MOV this,ecx; MOV func,eax; JMP eax'. 2014-10-21 18:51:04 +09:00
Sebastian Lackner 40472cd3a7 ntdll: Add support for ATL thunk 'MOV this,edx; MOV func,ecx; JMP ecx'. 2014-10-21 18:51:02 +09:00
Sebastian Lackner aab0d25a49 ntdll: Add support for ATL thunk 'MOV this,ecx; JMP func'. 2014-10-21 18:50:59 +09:00
Akihiro Sagawa e94d2e0459 server: KeyNameInformation returns the full name of the key. 2014-10-15 22:01:59 +09:00
Sebastian Lackner 34b2d920b4 ntdll: Improve check_atl_thunk to prevent passing exceptions to the usermode application. 2014-10-15 11:52:06 +09:00
Sebastian Lackner 1c957ceb96 ntdll: Only check for ATL thunk if allowed by execute option flags.
Checking for ATL thunks can be disabled by setting MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION.
2014-10-13 18:31:26 +09:00
Sebastian Lackner e16996bb3d ntdll: reset_write_watches shouldn't remove enforced exec permissions. 2014-10-13 18:31:19 +09:00
Sebastian Lackner aa3c6111d9 ntdll: Ensure force_exec_prot is also used for views with write watch permissions. 2014-10-13 18:31:14 +09:00
Sebastian Lackner 0cf3d78167 ntdll: Avoid recursive exception handler calls when handling guard pages.
The ATL check leads to problems when a page is protected with guard page protection.
raise_segv_exception is called with EXCEPTION_EXECUTE_FAULT. The ATL check tries to
read the memory, and triggers another exception handler. This time the virtual_handle_fault
check is executed, and removes the guard page protection. Afterwards, when the ATL
check returns, the exception is _not_ catched by virtual_handle_fault, but instead
passed to the application.
2014-10-13 18:31:06 +09:00
André Hentschel 778c2ab6f9 ntdll: Add support for Win 8.1. 2014-10-08 17:45:51 +02:00
Michael Müller 15d013067d ntdll: Wait until builtin dlls are unloaded before releasing the virtual view. 2014-10-07 20:22:15 +02:00
Sebastian Lackner 5272ca241b ntdll: Set ldr.EntryPoint for main executable. 2014-10-07 20:22:13 +02:00
Michael Müller 9e69715900 ntdll: Fix handling of page fault if a guard page and write watch is triggered at the same time. 2014-10-07 20:21:56 +02:00
Akihiro Sagawa e47ff90659 ntdll/tests: Add KeyNameInformation tests. 2014-09-29 17:48:30 +02:00
Akihiro Sagawa 2be3df3c32 ntdll/tests: Remove duplicated entry. 2014-09-29 17:48:25 +02:00
André Hentschel 6d50cfcac2 ntdll: Use a dynamic buffer for change notification data. 2014-09-23 17:17:11 +02:00
Daniel Lehman 27b3a5cce4 ntdll: Use the configured CriticalSection timeout in RtlpWaitForCriticalSection. 2014-09-11 19:30:42 +02:00
Sebastian Lackner 636dc013cd ntdll: Use call_dll_entry_point to execute TLS callbacks. 2014-09-08 16:03:38 +02:00
Sebastian Lackner b7f77bb1fd ntdll: Save more registers in call_dll_entry_point on i386. 2014-09-08 16:02:17 +02:00
Felix Janda 3ae113a957 ntdll: getdents64 might have been defined previously. 2014-09-05 15:26:55 +02:00
Nikolay Sivov 7b7d8374a4 ntdll: NtWaitForMultipleObjects()'s third arguments means 'wait_any', not 'wait_all'. 2014-09-01 13:03:07 +02:00
Sebastian Lackner b765561b49 ntdll/tests: Add tests for FILE_PIPE_INFORMATION.
Based on a patch by Adam Martinson.
2014-08-21 18:02:27 +02:00
Sebastian Lackner 82ce3fdcfd server: Implement set_named_pipe_info wineserver call for NtSetInformationFile/FilePipeInformation.
Based on a patch by Adam Martinson.
2014-08-20 19:40:07 +02:00
Adam Martinson 55e10e4ae2 ntdll: Implement FILE_PIPE_INFORMATION for NtQueryInformationFile. 2014-08-20 19:35:44 +02:00
Ken Thomases a14ed527d8 ntdll: In find_file_in_dir(), don't test directory entries' short names if the target name isn't a short name.
hash_short_file_name() will always create a short name of at least 8 characters
with the 5th being a tilde (~).  If the target name isn't of that form, then it
can never match any short name constructed from the directory entries.
2014-07-30 11:31:55 -05:00
Alexandre Julliard d7f6f8ee6c ntdll: Define arch_prctl since it is missing on Android. 2014-07-24 20:44:50 +02:00
Francois Gouget 09ffb97fdd ntdll: Fix the compilation by using the right mcontext_t field names for the signal context on FreeBSD. 2014-07-24 19:24:41 +02:00
Thomas Faber b4c96633ea include: Correctly spell STATUS_SMI_PRIMITIVE_INSTALLER_FAILED. 2014-07-23 21:24:24 +02:00