Jacek Caban : win32u: Use syscall interface for NtUserCallHwnd and NtUserCallHwndParam.
Alexandre Julliard
julliard at winehq.org
Fri Jul 22 15:37:21 CDT 2022
Module: wine
Branch: master
Commit: a23c1279c6403fda85bcb6c9ca0861b0e853b370
URL: https://gitlab.winehq.org/wine/wine/-/commit/a23c1279c6403fda85bcb6c9ca0861b0e853b370
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Jul 10 16:19:41 2022 +0200
win32u: Use syscall interface for NtUserCallHwnd and NtUserCallHwndParam.
---
dlls/win32u/gdiobj.c | 2 --
dlls/win32u/syscall.c | 2 ++
dlls/win32u/win32u.spec | 4 ++--
dlls/win32u/win32u_private.h | 2 --
dlls/win32u/wrappers.c | 12 ------------
dlls/wow64win/syscall.h | 2 ++
dlls/wow64win/user.c | 18 ++++++++++++++++++
7 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c
index 5bb8adedf44..18881afd27c 100644
--- a/dlls/win32u/gdiobj.c
+++ b/dlls/win32u/gdiobj.c
@@ -1136,8 +1136,6 @@ static struct unix_funcs unix_funcs =
NtGdiUnrealizeObject,
NtGdiUpdateColors,
NtGdiWidenPath,
- NtUserCallHwnd,
- NtUserCallHwndParam,
NtUserCallNextHookEx,
NtUserCallNoParam,
NtUserCallOneParam,
diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c
index 37d94aabcdb..ee6b3fa31d1 100644
--- a/dlls/win32u/syscall.c
+++ b/dlls/win32u/syscall.c
@@ -106,6 +106,8 @@ static void * const syscalls[] =
NtUserAttachThreadInput,
NtUserBeginPaint,
NtUserBuildHwndList,
+ NtUserCallHwnd,
+ NtUserCallHwndParam,
NtUserCallMsgFilter,
NtUserCheckMenuItem,
NtUserChildWindowFromPointEx,
diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec
index 37d21d46a79..fa4fbbcdfe9 100644
--- a/dlls/win32u/win32u.spec
+++ b/dlls/win32u/win32u.spec
@@ -768,11 +768,11 @@
@ stub NtUserBuildPropList
@ stub NtUserCalcMenuBar
@ stub NtUserCalculatePopupWindowPosition
-@ stdcall NtUserCallHwnd(long long)
+@ stdcall -syscall NtUserCallHwnd(long long)
@ stub NtUserCallHwndLock
@ stub NtUserCallHwndLockSafe
@ stub NtUserCallHwndOpt
-@ stdcall NtUserCallHwndParam(long ptr long)
+@ stdcall -syscall NtUserCallHwndParam(long ptr long)
@ stub NtUserCallHwndParamLock
@ stub NtUserCallHwndParamLockSafe
@ stub NtUserCallHwndSafe
diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h
index 3cb16b0d300..9ef7d8906a7 100644
--- a/dlls/win32u/win32u_private.h
+++ b/dlls/win32u/win32u_private.h
@@ -186,8 +186,6 @@ struct unix_funcs
BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj );
BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc );
BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc );
- ULONG_PTR (WINAPI *pNtUserCallHwnd)( HWND hwnd, DWORD code );
- ULONG_PTR (WINAPI *pNtUserCallHwndParam)( HWND hwnd, DWORD_PTR param, DWORD code );
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 );
diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c
index 6f6bad05b28..2cfc6c050db 100644
--- a/dlls/win32u/wrappers.c
+++ b/dlls/win32u/wrappers.c
@@ -749,18 +749,6 @@ ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code
return unix_funcs->pNtUserCallTwoParam( arg1, arg2, code );
}
-ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code )
-{
- if (!unix_funcs) return 0;
- return unix_funcs->pNtUserCallHwnd( hwnd, code );
-}
-
-ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code )
-{
- if (!unix_funcs) return 0;
- return unix_funcs->pNtUserCallHwndParam( hwnd, param, code );
-}
-
BOOL WINAPI NtUserCloseClipboard(void)
{
if (!unix_funcs) return FALSE;
diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h
index aa152eeb650..71f01ce6207 100644
--- a/dlls/wow64win/syscall.h
+++ b/dlls/wow64win/syscall.h
@@ -93,6 +93,8 @@
SYSCALL_ENTRY( NtUserAttachThreadInput ) \
SYSCALL_ENTRY( NtUserBeginPaint ) \
SYSCALL_ENTRY( NtUserBuildHwndList ) \
+ SYSCALL_ENTRY( NtUserCallHwnd ) \
+ SYSCALL_ENTRY( NtUserCallHwndParam ) \
SYSCALL_ENTRY( NtUserCallMsgFilter ) \
SYSCALL_ENTRY( NtUserCheckMenuItem ) \
SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \
diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c
index db7d4d06556..948318077f4 100644
--- a/dlls/wow64win/user.c
+++ b/dlls/wow64win/user.c
@@ -220,6 +220,24 @@ NTSTATUS WINAPI wow64_NtUserBuildHwndList( UINT *args )
return status;
}
+NTSTATUS WINAPI wow64_NtUserCallHwnd( UINT *args )
+{
+ HWND hwnd = get_handle( &args );
+ DWORD code = get_ulong( &args );
+
+ return NtUserCallHwnd( hwnd, code );
+}
+
+NTSTATUS WINAPI wow64_NtUserCallHwndParam( UINT *args )
+{
+ HWND hwnd = get_handle( &args );
+ DWORD_PTR param = get_ulong( &args );
+ DWORD code = get_ulong( &args );
+
+ FIXME( "%p %Ix %lu\n", hwnd, param, code );
+ return 0;
+}
+
NTSTATUS WINAPI wow64_NtUserCallMsgFilter( UINT *args )
{
MSG32 *msg32 = get_ptr( &args );
More information about the wine-cvs
mailing list