SeAuditingWithTokenForSubcategory
INT8 __fastcall SeAuditingWithTokenForSubcategory(INT64 a1, INT64 a2){
__int64 v3;
VOID *PrimaryToken;
_SECURITY_SUBJECT_CONTEXT SubjectContext;
UINT8 GenerateAudit;
memset(&SubjectContext, 0, sizeof(SubjectContext));
v3 = (unsigned int)(a1 - 100);
GenerateAudit = SepAuditingForSubCategory(a1, 1u);
if( SepTokenPolicyCounter[v3] )
{
if( a2 )
{
PrimaryToken = (VOID *)a2;
}
else
{
SeCaptureSubjectContext((INT64)&SubjectContext);
PrimaryToken = SubjectContext.PrimaryToken;
if( SubjectContext.ClientToken )
PrimaryToken = SubjectContext.ClientToken;
}
SepAdtIncorporatePerUserPolicy((unsigned int)v3, 1u, 0, PrimaryToken, &GenerateAudit);
if( !a2 )
SeReleaseSubjectContext(&SubjectContext);
}
return GenerateAudit;
}Referenced by:
ObCompleteObjectDuplication
ObInitProcess
PiPnpRtlSetDeviceRegProperty
PiPnpRtlSetObjectProperty
PipClearDevNodeProblem
PipSetDevNodeProblem
PspExitThread
SeAdtRegistryValueChangedAuditAlarm
SeAssignPrimaryToken
SeAuditingPlugAndPlayEvents
SeExchangePrimaryToken
SepAdtTokenRightAdjusted