Alexandre Julliard : ntdll: Use syscall thunks for object manager functions.

Alexandre Julliard julliard at winehq.org
Thu Jul 16 19:01:21 CDT 2020


Module: wine
Branch: master
Commit: 0534beb331ff9f1444db47cfb3c03224c1837aca
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0534beb331ff9f1444db47cfb3c03224c1837aca

Author: Alexandre Julliard <julliard at 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 at 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 );




More information about the wine-cvs mailing list