SeMaximumAuditMaskFromGlobalSacl
VOID __stdcall SeMaximumAuditMaskFromGlobalSacl(
_UNICODE_STRING *ObjectTypeName,
UINT64 GrantedAccess,
VOID *Token,
UINT64 *AuditMask){
unsigned int v6;
_ETHREAD *CurrentThread;
_SEP_GLOBAL_SACL *Match;
UINT64 pAuditMask;
if( ObjectTypeName )
{
v6 = GrantedAccess;
if( ObjectTypeName->Buffer )
{
Match = 0i64;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceSharedLite((UINT64)&unk_140CEC530, 1);
if( SepRmGlobalSaclFind(&Match, 0i64, ObjectTypeName, 0) >= 0 )
{
LODWORD(pAuditMask) = 0;
SeMaximumAuditMask(*((_ACL **)Match + 3), v6, Token, &pAuditMask);
*(_DWORD *)AuditMask |= pAuditMask;
}
ExReleaseResourceLite(&unk_140CEC530);
KeLeaveCriticalRegion();
}
}
}Referenced by:
SeOpenObjectAuditAlarmWithTransaction
SeSecurityDescriptorChangedAuditAlarm