SepCopyClientTokenAndSetSilo
NTSTATUS __stdcall SepCopyClientTokenAndSetSilo(
VOID *Token,
_SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
_EJOB *ServerSilo,
VOID **DuplicateToken){
NTSTATUS result;
int v7;
unsigned int ServerSiloServiceSessionId;
result = SeCopyClientToken(Token, ImpersonationLevel, (UINT8)ServerSilo, 0i64, 0i64);
v7 = result;
if( result >= 0 )
{
ServerSiloServiceSessionId = PsGetServerSiloServiceSessionId((INT64)ServerSilo);
if( ServerSiloServiceSessionId != -1 )
v7 = SeSetSessionIdToken(*DuplicateToken, ServerSiloServiceSessionId);
if( v7 < 0 || (v7 = SepSetServerSiloToken(*DuplicateToken, ServerSilo), v7 < 0) )
{
HalPutDmaAdapter((PADAPTER_OBJECT)*DuplicateToken);
*DuplicateToken = 0i64;
}
return v7;
}
return result;
}Referenced by:
SepCreateClientSecurityEx
SepUpdateSiloInClientSecurity