SeImpersonateClientEx
NTSTATUS __stdcall SeImpersonateClientEx(PSECURITY_CLIENT_CONTEXT ClientContext, _ETHREAD *ServerThread){
_ETHREAD *CurrentThread;
unsigned __int8 DirectAccessEffectiveOnly;
CurrentThread = ServerThread;
if( ClientContext->DirectlyAccessClientToken )
DirectAccessEffectiveOnly = ClientContext->DirectAccessEffectiveOnly;
else
DirectAccessEffectiveOnly = ClientContext->SecurityQos.EffectiveOnly;
if( !ServerThread )
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
return PsImpersonateClient(
CurrentThread,
ClientContext->ClientToken,
1u,
DirectAccessEffectiveOnly,
ClientContext->SecurityQos.ImpersonationLevel);
}Referenced by:
EtwpCreateLogFile
NtAlpcImpersonateClientOfPort
NtImpersonateThread
SeImpersonateClient