Module: wine Branch: master Commit: 0534beb331ff9f1444db47cfb3c03224c1837aca URL: https://source.winehq.org/git/wine.git/?a=commit;h=0534beb331ff9f1444db47cfb...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jul 16 10:44:54 2020 +0200
ntdll: Use syscall thunks for object manager functions.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/ntdll.spec | 12 ++++++------ dlls/ntdll/om.c | 35 ----------------------------------- dlls/ntdll/unix/loader.c | 3 --- dlls/ntdll/unixlib.h | 9 +-------- 4 files changed, 7 insertions(+), 52 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 72bf4c25ca..4c8a1f6165 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -200,7 +200,7 @@ @ stdcall NtDeleteValueKey(long ptr) @ stdcall -syscall NtDeviceIoControlFile(long long ptr ptr ptr long ptr long ptr long) @ stdcall NtDisplayString(ptr) -@ stdcall NtDuplicateObject(long long long ptr long long long) +@ stdcall -syscall NtDuplicateObject(long long long ptr long long long) @ stdcall NtDuplicateToken(long long ptr long long ptr) # @ stub NtEnumerateBootEntries @ stub NtEnumerateBus @@ -305,7 +305,7 @@ @ stdcall NtQueryLicenseValue(ptr ptr ptr long ptr) @ stdcall NtQueryMultipleValueKey(long ptr long ptr long ptr) @ stdcall -syscall NtQueryMutant(long long ptr long ptr) -@ stdcall NtQueryObject(long long ptr long ptr) +@ stdcall -syscall NtQueryObject(long long ptr long ptr) @ stub NtQueryOpenSubKeys @ stdcall NtQueryPerformanceCounter(ptr ptr) # @ stub NtQueryPortInformationProcess @@ -376,7 +376,7 @@ @ stdcall -syscall NtSetInformationFile(long ptr ptr long long) @ stdcall -syscall NtSetInformationJobObject(long long ptr long) @ stdcall NtSetInformationKey(long long ptr long) -@ stdcall NtSetInformationObject(long long ptr long) +@ stdcall -syscall NtSetInformationObject(long long ptr long) @ stdcall -syscall NtSetInformationProcess(long long ptr long) @ stdcall -syscall NtSetInformationThread(long long ptr long) @ stdcall NtSetInformationToken(long long ptr long) @@ -1187,7 +1187,7 @@ @ stdcall -private ZwDeleteValueKey(long ptr) NtDeleteValueKey @ stdcall -private -syscall ZwDeviceIoControlFile(long long ptr ptr ptr long ptr long ptr long) NtDeviceIoControlFile @ stdcall -private ZwDisplayString(ptr) NtDisplayString -@ stdcall -private ZwDuplicateObject(long long long ptr long long long) NtDuplicateObject +@ stdcall -private -syscall ZwDuplicateObject(long long long ptr long long long) NtDuplicateObject @ stdcall -private ZwDuplicateToken(long long ptr long long ptr) NtDuplicateToken # @ stub ZwEnumerateBootEntries @ stub ZwEnumerateBus @@ -1292,7 +1292,7 @@ @ stdcall -private ZwQueryLicenseValue(ptr ptr ptr long ptr) NtQueryLicenseValue @ stdcall -private ZwQueryMultipleValueKey(long ptr long ptr long ptr) NtQueryMultipleValueKey @ stdcall -private -syscall ZwQueryMutant(long long ptr long ptr) NtQueryMutant -@ stdcall -private ZwQueryObject(long long ptr long ptr) NtQueryObject +@ stdcall -private -syscall ZwQueryObject(long long ptr long ptr) NtQueryObject @ stub ZwQueryOpenSubKeys @ stdcall -private ZwQueryPerformanceCounter(ptr ptr) NtQueryPerformanceCounter # @ stub ZwQueryPortInformationProcess @@ -1363,7 +1363,7 @@ @ stdcall -private -syscall ZwSetInformationFile(long ptr ptr long long) NtSetInformationFile @ stdcall -private -syscall ZwSetInformationJobObject(long long ptr long) NtSetInformationJobObject @ stdcall -private ZwSetInformationKey(long long ptr long) NtSetInformationKey -@ stdcall -private ZwSetInformationObject(long long ptr long) NtSetInformationObject +@ stdcall -private -syscall ZwSetInformationObject(long long ptr long) NtSetInformationObject @ stdcall -private -syscall ZwSetInformationProcess(long long ptr long) NtSetInformationProcess @ stdcall -private -syscall ZwSetInformationThread(long long ptr long) NtSetInformationThread @ stdcall -private ZwSetInformationToken(long long ptr long) NtSetInformationToken diff --git a/dlls/ntdll/om.c b/dlls/ntdll/om.c index 601e6ede12..2234f870d6 100644 --- a/dlls/ntdll/om.c +++ b/dlls/ntdll/om.c @@ -39,29 +39,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntdll); * Generic object functions */
-/****************************************************************************** - * NtQueryObject [NTDLL.@] - * ZwQueryObject [NTDLL.@] - */ -NTSTATUS WINAPI NtQueryObject(IN HANDLE handle, - IN OBJECT_INFORMATION_CLASS info_class, - OUT PVOID ptr, IN ULONG len, OUT PULONG used_len) -{ - return unix_funcs->NtQueryObject( handle, info_class, ptr, len, used_len ); -} - -/****************************************************************** - * NtSetInformationObject [NTDLL.@] - * ZwSetInformationObject [NTDLL.@] - * - */ -NTSTATUS WINAPI NtSetInformationObject(IN HANDLE handle, - IN OBJECT_INFORMATION_CLASS info_class, - IN PVOID ptr, IN ULONG len) -{ - return unix_funcs->NtSetInformationObject( handle, info_class, ptr, len ); -} - /****************************************************************************** * NtQuerySecurityObject [NTDLL.@] * @@ -150,18 +127,6 @@ NtQuerySecurityObject( }
-/****************************************************************************** - * NtDuplicateObject [NTDLL.@] - * ZwDuplicateObject [NTDLL.@] - */ -NTSTATUS WINAPI NtDuplicateObject( HANDLE source_process, HANDLE source, - HANDLE dest_process, PHANDLE dest, - ACCESS_MASK access, ULONG attributes, ULONG options ) -{ - return unix_funcs->NtDuplicateObject( source_process, source, dest_process, - dest, access, attributes, options ); -} - static LONG WINAPI invalid_handle_exception_handler( EXCEPTION_POINTERS *eptr ) { EXCEPTION_RECORD *rec = eptr->ExceptionRecord; diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index 6a7fe28515..a343274087 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -1360,11 +1360,8 @@ static struct unix_funcs unix_funcs = { NtClose, NtCurrentTeb, - NtDuplicateObject, NtGetContextThread, - NtQueryObject, NtQueryPerformanceCounter, - NtSetInformationObject, DbgUiIssueRemoteBreakin, RtlGetSystemTimePrecise, RtlWaitOnAddress, diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h index 931a681e16..e4206762b1 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,22 +28,15 @@ struct msghdr; struct _DISPATCHER_CONTEXT;
/* increment this when you change the function table */ -#define NTDLL_UNIXLIB_VERSION 87 +#define NTDLL_UNIXLIB_VERSION 88
struct unix_funcs { /* Nt* functions */ NTSTATUS (WINAPI *NtClose)( HANDLE handle ); TEB * (WINAPI *NtCurrentTeb)(void); - NTSTATUS (WINAPI *NtDuplicateObject)( HANDLE source_process, HANDLE source, - HANDLE dest_process, HANDLE *dest, - ACCESS_MASK access, ULONG attributes, ULONG options ); NTSTATUS (WINAPI *NtGetContextThread)( HANDLE handle, CONTEXT *context ); - NTSTATUS (WINAPI *NtQueryObject)( HANDLE handle, OBJECT_INFORMATION_CLASS info_class, - void *ptr, ULONG len, ULONG *used_len ); NTSTATUS (WINAPI *NtQueryPerformanceCounter)( LARGE_INTEGER *counter, LARGE_INTEGER *frequency ); - NTSTATUS (WINAPI *NtSetInformationObject)( HANDLE handle, OBJECT_INFORMATION_CLASS info_class, - void *ptr, ULONG len );
/* other Win32 API functions */ NTSTATUS (WINAPI *DbgUiIssueRemoteBreakin)( HANDLE process );