Jacek Caban : win32u: Move NtUserCloseDesktop implementation from user32.

Alexandre Julliard julliard at winehq.org
Wed Oct 13 15:59:27 CDT 2021


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Oct 13 14:53:36 2021 +0200

win32u: Move NtUserCloseDesktop implementation from user32.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/message.c    |  2 +-
 dlls/user32/user32.spec  |  2 +-
 dlls/user32/winstation.c | 16 ----------------
 dlls/win32u/syscall.c    |  1 +
 dlls/win32u/win32u.spec  |  2 +-
 dlls/win32u/winstation.c | 15 +++++++++++++++
 dlls/wow64win/syscall.h  |  1 +
 dlls/wow64win/user.c     |  7 +++++++
 include/ntuser.h         |  1 +
 9 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 7e6b660b8af..e5ea0735ed2 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -4321,7 +4321,7 @@ static BOOL CALLBACK bcast_desktop( LPWSTR desktop, LPARAM lp )
     }
 
     ret = EnumDesktopWindows( hdesktop, bcast_childwindow, lp );
-    CloseDesktop(hdesktop);
+    NtUserCloseDesktop( hdesktop );
     TRACE("-->%d\n", ret);
     return parm->success;
 }
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 19bf5ce1b8e..7686e4ed14d 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -74,7 +74,7 @@
 @ stdcall ClientToScreen(long ptr)
 @ stdcall ClipCursor(ptr)
 @ stdcall CloseClipboard()
-@ stdcall CloseDesktop(long)
+@ stdcall CloseDesktop(long) NtUserCloseDesktop
 @ stdcall CloseTouchInputHandle(long)
 @ stdcall CloseWindow(long)
 @ stdcall CloseWindowStation(long) NtUserCloseWindowStation
diff --git a/dlls/user32/winstation.c b/dlls/user32/winstation.c
index 37ae9e9ceb2..1f847ca8b8f 100644
--- a/dlls/user32/winstation.c
+++ b/dlls/user32/winstation.c
@@ -357,22 +357,6 @@ HDESK WINAPI OpenDesktopW( LPCWSTR name, DWORD flags, BOOL inherit, ACCESS_MASK
 }
 
 
-/***********************************************************************
- *              CloseDesktop  (USER32.@)
- */
-BOOL WINAPI CloseDesktop( HDESK handle )
-{
-    BOOL ret;
-    SERVER_START_REQ( close_desktop )
-    {
-        req->handle = wine_server_obj_handle( handle );
-        ret = !wine_server_call_err( req );
-    }
-    SERVER_END_REQ;
-    return ret;
-}
-
-
 /******************************************************************************
  *              GetThreadDesktop   (USER32.@)
  */
diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c
index 132c55117a7..2f4269104dd 100644
--- a/dlls/win32u/syscall.c
+++ b/dlls/win32u/syscall.c
@@ -94,6 +94,7 @@ static void * const syscalls[] =
     NtGdiSetVirtualResolution,
     NtGdiSwapBuffers,
     NtGdiTransformPoints,
+    NtUserCloseDesktop,
     NtUserCloseWindowStation,
     NtUserGetProcessWindowStation,
     NtUserSetProcessWindowStation,
diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec
index 24625316f9e..69a48236d84 100644
--- a/dlls/win32u/win32u.spec
+++ b/dlls/win32u/win32u.spec
@@ -794,7 +794,7 @@
 @ stub NtUserClearForeground
 @ stub NtUserClipCursor
 @ stub NtUserCloseClipboard
-@ stub NtUserCloseDesktop
+@ stdcall -syscall NtUserCloseDesktop(long)
 @ stdcall -syscall NtUserCloseWindowStation(long)
 @ stub NtUserCompositionInputSinkLuidFromPoint
 @ stub NtUserCompositionInputSinkViewInstanceIdFromPoint
diff --git a/dlls/win32u/winstation.c b/dlls/win32u/winstation.c
index 153a83e313d..3b0df303821 100644
--- a/dlls/win32u/winstation.c
+++ b/dlls/win32u/winstation.c
@@ -75,3 +75,18 @@ BOOL WINAPI NtUserSetProcessWindowStation( HWINSTA handle )
     SERVER_END_REQ;
     return ret;
 }
+
+/***********************************************************************
+ *           NtUserCloseDesktop  (win32u.@)
+ */
+BOOL WINAPI NtUserCloseDesktop( HDESK handle )
+{
+    BOOL ret;
+    SERVER_START_REQ( close_desktop )
+    {
+        req->handle = wine_server_obj_handle( handle );
+        ret = !wine_server_call_err( req );
+    }
+    SERVER_END_REQ;
+    return ret;
+}
diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h
index ccf0574c639..ebb88f7013d 100644
--- a/dlls/wow64win/syscall.h
+++ b/dlls/wow64win/syscall.h
@@ -81,6 +81,7 @@
     SYSCALL_ENTRY( NtGdiSetVirtualResolution ) \
     SYSCALL_ENTRY( NtGdiSwapBuffers ) \
     SYSCALL_ENTRY( NtGdiTransformPoints ) \
+    SYSCALL_ENTRY( NtUserCloseDesktop ) \
     SYSCALL_ENTRY( NtUserCloseWindowStation ) \
     SYSCALL_ENTRY( NtUserGetProcessWindowStation ) \
     SYSCALL_ENTRY( NtUserSetProcessWindowStation )
diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c
index cf028383c21..60fd8921b81 100644
--- a/dlls/wow64win/user.c
+++ b/dlls/wow64win/user.c
@@ -45,3 +45,10 @@ NTSTATUS WINAPI wow64_NtUserSetProcessWindowStation( UINT *args )
 
     return NtUserSetProcessWindowStation( handle );
 }
+
+NTSTATUS WINAPI wow64_NtUserCloseDesktop( UINT *args )
+{
+    HDESK handle = get_handle( &args );
+
+    return NtUserCloseDesktop( handle );
+}
diff --git a/include/ntuser.h b/include/ntuser.h
index eac4f0da092..f791af40232 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -22,6 +22,7 @@
 #include <winuser.h>
 #include <winternl.h>
 
+BOOL    WINAPI NtUserCloseDesktop( HDESK handle );
 BOOL    WINAPI NtUserCloseWindowStation( HWINSTA handle );
 HWINSTA WINAPI NtUserGetProcessWindowStation(void);
 BOOL    WINAPI NtUserSetProcessWindowStation( HWINSTA handle );




More information about the wine-cvs mailing list