diff --git a/dlls/wtsapi32/tests/wtsapi.c b/dlls/wtsapi32/tests/wtsapi.c index c24bd491a7f..67f56bbd7f5 100644 --- a/dlls/wtsapi32/tests/wtsapi.c +++ b/dlls/wtsapi32/tests/wtsapi.c @@ -112,7 +112,6 @@ static void test_WTSQueryUserToken(void) SetLastError(0xdeadbeef); ret = WTSQueryUserToken(WTS_CURRENT_SESSION, NULL); ok(!ret, "expected WTSQueryUserToken to fail\n"); - todo_wine ok(GetLastError()==ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError()); } diff --git a/dlls/wtsapi32/wtsapi32.c b/dlls/wtsapi32/wtsapi32.c index 55695029776..3edf9215fd9 100644 --- a/dlls/wtsapi32/wtsapi32.c +++ b/dlls/wtsapi32/wtsapi32.c @@ -254,8 +254,17 @@ BOOL WINAPI WTSQuerySessionInformationW( */ BOOL WINAPI WTSQueryUserToken(ULONG session_id, PHANDLE token) { - FIXME("%u %p\n", session_id, token); - return FALSE; + FIXME("%u %p semi-stub!\n", session_id, token); + + if (!token) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + return DuplicateHandle(GetCurrentProcess(), GetCurrentProcessToken(), + GetCurrentProcess(), token, + 0, FALSE, DUPLICATE_SAME_ACCESS); } /************************************************************