0 out of 1 rated this helpful - Rate this topic

ImpersonateSelf function

Applies to: desktop apps only

The ImpersonateSelf function obtains an access token that impersonates the security context of the calling process. The token is assigned to the calling thread.

Syntax

BOOL WINAPI ImpersonateSelf(
  __in  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);

Parameters

ImpersonationLevel [in]

Specifies a SECURITY_IMPERSONATION_LEVEL enumerated type that supplies the impersonation level of the new token.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The ImpersonateSelf function is used for tasks such as enabling a privilege for a single thread rather than for the entire process or for changing the default discretionary access control list (DACL) for a single thread.

The server can call the RevertToSelf function when the impersonation is complete.

For this function to succeed, the DACL protecting the process token must grant the TOKEN_DUPLICATE right to itself.

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows Server 2003

Header

Winbase.h (include Windows.h)

Library

Advapi32.lib

DLL

Advapi32.dll

See also

Client/Server Access Control Overview
Client/Server Access Control Functions
DuplicateToken
ImpersonateNamedPipeClient
RevertToSelf
SECURITY_IMPERSONATION_LEVEL

 

 

Send comments about this topic to Microsoft

Build date: 3/7/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ