SePrivilegeCheck
INT8 __fastcall SePrivilegeCheck(UINT64 *a1, INT64 a2, INT8 PreviousMode){
_TOKEN *v4;
if( !PreviousMode )
return 1;
v4 = *(_TOKEN **)a2;
if( !*(_QWORD *)a2 )
{
v4 = *(_TOKEN **)(a2 + 16);
return SepPrivilegeCheck(
v4,
(_LUID_AND_ATTRIBUTES *)(a1 + 1),
*(unsigned int *)a1,
*((unsigned int *)a1 + 1),
PreviousMode);
}
if( *(int *)(a2 + 8) >= 2 )
return SepPrivilegeCheck(
v4,
(_LUID_AND_ATTRIBUTES *)(a1 + 1),
*(unsigned int *)a1,
*((unsigned int *)a1 + 1),
PreviousMode);
return 0;
}Referenced by:
CMFCheckAccess
IopCheckBackupRestorePrivilege
NtSetInformationJobObject
ObpAdjustCreatorAccessState
ObpCreateHandle
PiAuDoesClientHavePrivilege
PsOpenProcess
PspSinglePrivCheck
RtlpNewSecurityObject
SeCheckPrivilegedObject
SeSinglePrivilegeCheckEx