Jacek Caban : user32: Use syscall interface for NtUserCall* functions.
Alexandre Julliard
julliard at winehq.org
Fri Jul 22 15:37:21 CDT 2022
Module: wine
Branch: master
Commit: ca630fb653a0bd73075caa4ddfa413a62617de60
URL: https://gitlab.winehq.org/wine/wine/-/commit/ca630fb653a0bd73075caa4ddfa413a62617de60
Author: Jacek Caban <jacek at 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 );
More information about the wine-cvs
mailing list