NtDeleteObjectAuditAlarm
INT64 __fastcall NtDeleteObjectAuditAlarm(_UNICODE_STRING *SubsystemName, void *HandleId, INT64 GenerateOnClose){
CHAR v5;
int v7;
INT64 v8;
struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
PVOID P;
memset(&SubjectContext, 0, sizeof(SubjectContext));
P = 0i64;
v5 = *((_BYTE *)KeGetCurrentThread() + 562);
if( !(_BYTE)GenerateOnClose )
return 0i64;
SeCaptureSubjectContext(&SubjectContext);
if( SubjectContext.PrimaryToken )
{
if( SeCheckAuditPrivilege(&SubjectContext, v5) )
{
v7 = SepProbeAndCaptureString_U(SubsystemName, (_UNICODE_STRING **)&P);
if( v7 >= 0 )
SepAdtDeleteObjectAuditAlarm((UNICODE_STRING *)P, HandleId, &SubjectContext, 0i64, 0i64, 0);
}
else
{
v7 = -1073741727;
}
SeReleaseSubjectContext(&SubjectContext);
if( P )
ExFreePoolWithTag(P, 0);
v8 = 3221225626i64;
if( v7 != -1073741670 )
return(unsigned int)v7;
}
else
{
v7 = -1073741700;
v8 = 3221225596i64;
}
SepAuditFailed(v8);
return(unsigned int)v7;
}Referenced by:
No references.