SeCreateClientSecurityFromSubjectContext
NTSTATUS __stdcall SeCreateClientSecurityFromSubjectContext(
PSECURITY_SUBJECT_CONTEXT SubjectContext,
PSECURITY_QUALITY_OF_SERVICE ClientSecurityQos,
BOOL ServerIsRemote,
PSECURITY_CLIENT_CONTEXT ClientContext){
_ADAPTER_OBJECT *ClientToken;
VOID **v5;
char v6;
int v11;
int ClientSecurity;
VOID **v14;
UINT8 pbDominate;
ClientToken = (_ADAPTER_OBJECT *)SubjectContext->ClientToken;
v5 = 0i64;
v6 = 0;
pbDominate = 0;
if( !ClientToken )
ClientToken = (_ADAPTER_OBJECT *)SubjectContext->PrimaryToken;
ObfReferenceObject(ClientToken);
if( SubjectContext->ClientToken )
{
v11 = 2;
RtlSidDominatesForTrust(
*((VOID **)SubjectContext->PrimaryToken + 138),
*((VOID **)SubjectContext->ClientToken + 138),
&pbDominate);
if( !pbDominate )
{
v6 = 1;
v5 = v14;
}
}
else
{
v11 = 1;
}
ClientSecurity = SepCreateClientSecurityEx(
ClientToken,
(__int64)ClientSecurityQos,
ServerIsRemote,
v11,
0,
SubjectContext->ImpersonationLevel,
0,
0i64,
v6,
v5,
(__int64)ClientContext);
if( ClientSecurity < 0 || !ClientSecurityQos->ContextTrackingMode )
HalPutDmaAdapter(ClientToken);
return ClientSecurity;
}Referenced by:
No references.