Module: wine Branch: stable Commit: 4748dbfbf3c1ed82d971c4ac813bc89683c085a5 URL: https://gitlab.winehq.org/wine/wine/-/commit/4748dbfbf3c1ed82d971c4ac813bc89...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Wed Mar 15 10:32:55 2023 +0800
user32/tests: Test winstation and desktop access rights.
(cherry picked from commit 44b92e577716f5b91fd8b6130a79a81ae13d426f)
---
dlls/user32/tests/winstation.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/dlls/user32/tests/winstation.c b/dlls/user32/tests/winstation.c index 9c27b5afd01..fc775546502 100644 --- a/dlls/user32/tests/winstation.c +++ b/dlls/user32/tests/winstation.c @@ -121,7 +121,9 @@ static void test_handles(void) char buffer[29], default_name[29] = ""; DWORD size; BOOL ret; + OBJECT_BASIC_INFORMATION info; TOKEN_STATISTICS token_stats; + NTSTATUS status;
/* win stations */
@@ -133,6 +135,12 @@ static void test_handles(void) ok( GetLastError() == ERROR_INVALID_HANDLE, "bad last error %ld\n", GetLastError() ); print_object( w1 );
+ status = NtQueryObject( w1, ObjectBasicInformation, &info, sizeof(info), NULL ); + ok( !status, "NtQueryObject failed, status %#lx\n", status ); + todo_wine + ok( info.GrantedAccess == (STANDARD_RIGHTS_REQUIRED | WINSTA_ALL_ACCESS), + "Got unexpected access %#lx\n", info.GrantedAccess ); + flags = 0; ok( GetHandleInformation( w1, &flags ), "GetHandleInformation failed\n" ); ok( !(flags & HANDLE_FLAG_PROTECT_FROM_CLOSE) || @@ -270,6 +278,12 @@ static void test_handles(void) ok( GetHandleInformation( d1, &flags ), "GetHandleInformation failed\n" ); ok( !(flags & HANDLE_FLAG_PROTECT_FROM_CLOSE), "handle %p PROTECT_FROM_CLOSE set\n", d1 );
+ status = NtQueryObject( d1, ObjectBasicInformation, &info, sizeof(info), NULL ); + ok( !status, "NtQueryObject failed, status %#lx\n", status ); + todo_wine + ok( info.GrantedAccess == (STANDARD_RIGHTS_REQUIRED | DESKTOP_ALL_ACCESS), + "Got unexpected access %#lx\n", info.GrantedAccess ); + SetLastError( 0xdeadbeef ); ok( !CloseDesktop(d1), "closing thread desktop succeeded\n" ); ok( GetLastError() == ERROR_BUSY || broken(GetLastError() == 0xdeadbeef), /* wow64 */