Module: wine Branch: master Commit: ca630fb653a0bd73075caa4ddfa413a62617de60 URL: https://gitlab.winehq.org/wine/wine/-/commit/ca630fb653a0bd73075caa4ddfa413a...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Jul 10 16:38:15 2022 +0200
user32: Use syscall interface for NtUserCall* functions.
---
dlls/win32u/gdiobj.c | 4 ---- dlls/win32u/syscall.c | 4 ++++ dlls/win32u/win32u.spec | 8 ++++---- dlls/win32u/win32u_private.h | 4 ---- dlls/win32u/wrappers.c | 24 ------------------------ dlls/wow64win/syscall.h | 4 ++++ dlls/wow64win/user.c | 36 ++++++++++++++++++++++++++++++++++++ 7 files changed, 48 insertions(+), 36 deletions(-)
diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 18881afd27c..f6e918721a4 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1136,10 +1136,6 @@ static struct unix_funcs unix_funcs = NtGdiUnrealizeObject, NtGdiUpdateColors, NtGdiWidenPath, - NtUserCallNextHookEx, - NtUserCallNoParam, - NtUserCallOneParam, - NtUserCallTwoParam, NtUserChangeClipboardChain, NtUserChangeDisplaySettings, NtUserClipCursor, diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index ee6b3fa31d1..ffe1703e1e7 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -109,6 +109,10 @@ static void * const syscalls[] = NtUserCallHwnd, NtUserCallHwndParam, NtUserCallMsgFilter, + NtUserCallNextHookEx, + NtUserCallNoParam, + NtUserCallOneParam, + NtUserCallTwoParam, NtUserCheckMenuItem, NtUserChildWindowFromPointEx, NtUserCloseDesktop, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index fa4fbbcdfe9..d12b904d3bb 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -777,10 +777,10 @@ @ stub NtUserCallHwndParamLockSafe @ stub NtUserCallHwndSafe @ stdcall -syscall NtUserCallMsgFilter(ptr long) -@ stdcall NtUserCallNextHookEx(long long long long) -@ stdcall NtUserCallNoParam(long) -@ stdcall NtUserCallOneParam(long long) -@ stdcall NtUserCallTwoParam(long long long) +@ stdcall -syscall NtUserCallNextHookEx(long long long long) +@ stdcall -syscall NtUserCallNoParam(long) +@ stdcall -syscall NtUserCallOneParam(long long) +@ stdcall -syscall NtUserCallTwoParam(long long long) @ stub NtUserCanBrokerForceForeground @ stdcall NtUserChangeClipboardChain(long long) @ stdcall NtUserChangeDisplaySettings(ptr ptr long long ptr) diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 9ef7d8906a7..4fa0b0e3493 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -186,10 +186,6 @@ struct unix_funcs BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj ); BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc ); BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc ); - LRESULT (WINAPI *pNtUserCallNextHookEx)( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam ); - ULONG_PTR (WINAPI *pNtUserCallNoParam)( ULONG code ); - ULONG_PTR (WINAPI *pNtUserCallOneParam)( ULONG_PTR arg, ULONG code ); - ULONG_PTR (WINAPI *pNtUserCallTwoParam)( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code ); BOOL (WINAPI *pNtUserChangeClipboardChain)( HWND hwnd, HWND next ); LONG (WINAPI *pNtUserChangeDisplaySettings)( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ); diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 2cfc6c050db..c9cf89f5fe7 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -725,30 +725,6 @@ NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER return unix_funcs->pNtGdiDdDDISetVidPnSourceOwner( desc ); }
-LRESULT WINAPI NtUserCallNextHookEx( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallNextHookEx( hhook, code, wparam, lparam ); -} - -ULONG_PTR WINAPI NtUserCallNoParam( ULONG code ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallNoParam( code ); -} - -ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallOneParam( arg, code ); -} - -ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallTwoParam( arg1, arg2, code ); -} - BOOL WINAPI NtUserCloseClipboard(void) { if (!unix_funcs) return FALSE; diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index 71f01ce6207..8ff061ec7f8 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -96,6 +96,10 @@ SYSCALL_ENTRY( NtUserCallHwnd ) \ SYSCALL_ENTRY( NtUserCallHwndParam ) \ SYSCALL_ENTRY( NtUserCallMsgFilter ) \ + SYSCALL_ENTRY( NtUserCallNextHookEx ) \ + SYSCALL_ENTRY( NtUserCallNoParam ) \ + SYSCALL_ENTRY( NtUserCallOneParam ) \ + SYSCALL_ENTRY( NtUserCallTwoParam ) \ SYSCALL_ENTRY( NtUserCheckMenuItem ) \ SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \ SYSCALL_ENTRY( NtUserCloseDesktop ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 948318077f4..68d444a7c83 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -250,6 +250,42 @@ NTSTATUS WINAPI wow64_NtUserCallMsgFilter( UINT *args ) return ret; }
+NTSTATUS WINAPI wow64_NtUserCallNextHookEx( UINT *args ) +{ + HHOOK hhook = get_handle( &args ); + INT code = get_ulong( &args ); + WPARAM wparam = get_ulong( &args ); + LPARAM lparam = get_ulong( &args ); + + return NtUserCallNextHookEx( hhook, code, wparam, lparam ); +} + +NTSTATUS WINAPI wow64_NtUserCallNoParam( UINT *args ) +{ + ULONG code = get_ulong( &args ); + + return NtUserCallNoParam( code ); +} + +NTSTATUS WINAPI wow64_NtUserCallOneParam( UINT *args ) +{ + ULONG_PTR arg = get_ulong( &args ); + ULONG code = get_ulong( &args ); + + FIXME( "%Ix %lu\n", arg, code ); + return 0; +} + +NTSTATUS WINAPI wow64_NtUserCallTwoParam( UINT *args ) +{ + ULONG_PTR arg1 = get_ulong( &args ); + ULONG_PTR arg2 = get_ulong( &args ); + ULONG code = get_ulong( &args ); + + FIXME( "%Ix %Ix %lu\n", arg1, arg2, code ); + return 0; +} + NTSTATUS WINAPI wow64_NtUserCheckMenuItem( UINT *args ) { HMENU handle = get_handle( &args );