From edf55ec7d970aeadba3c3bfcbff0fa1519362d71 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Fri, 13 Aug 2004 23:20:27 +0000 Subject: [PATCH] Implement SetThreadToken using NtSetInformationThread. --- dlls/advapi32/security.c | 7 ++----- dlls/ntdll/thread.c | 8 +++++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c index 67466219061..762de383eb1 100644 --- a/dlls/advapi32/security.c +++ b/dlls/advapi32/security.c @@ -362,11 +362,8 @@ SetTokenInformation( HANDLE token, TOKEN_INFORMATION_CLASS tokeninfoclass, */ BOOL WINAPI SetThreadToken(PHANDLE thread, HANDLE token) { - FIXME("(%p, %p): stub (NT impl. only)\n", thread, token); - - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - - return FALSE; + CallWin32ToNt (NtSetInformationThread( thread ? *thread : GetCurrentThread(), + ThreadImpersonationToken, &token, sizeof token )); } /* ############################## diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 070ece0e2c9..9bbdd8719c9 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -539,12 +539,18 @@ NTSTATUS WINAPI NtSetInformationThread( HANDLE handle, THREADINFOCLASS class, FIXME( "ZeroTlsCell not supported on other threads\n" ); return STATUS_NOT_IMPLEMENTED; + case ThreadImpersonationToken: + { + const HANDLE *phToken = data; + if (length != sizeof(HANDLE)) return STATUS_INVALID_PARAMETER; + FIXME("Set ThreadImpersonationToken handle to %p\n", *phToken ); + return STATUS_SUCCESS; + } case ThreadBasicInformation: case ThreadTimes: case ThreadPriority: case ThreadBasePriority: case ThreadAffinityMask: - case ThreadImpersonationToken: case ThreadDescriptorTableEntry: case ThreadEnableAlignmentFaultFixup: case ThreadEventPair_Reusable: -- 2.11.4.GIT