SeSecurityAttributePresent
UINT8 __stdcall SeSecurityAttributePresent(PVOID AccessToken, _UNICODE_STRING *AttributeName, _UNICODE_STRING *a3){
char v5;
_ETHREAD *CurrentThread;
_WORD *v7;
__int16 v8;
bool v9;
unsigned __int8 CurrentIrql;
_ETHREAD *v12;
UINT8 *OwnerEntryForLegacyShim;
v5 = 0;
if( KeGetCurrentIrql() < 2u )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
v7 = (_WORD *)*((_QWORD *)AccessToken + 6);
if( (v7[13] & 0x41) == 1 )
KeBugCheckEx(0x1C6u, (PVOID)0xF, v7, 0i64, 0i64);
v8 = v7[13] & 1;
if( v8 )
{
CurrentIrql = KeGetCurrentIrql();
v12 = (_ETHREAD *)KeGetCurrentThread();
if( CurrentIrql > 1u )
KeBugCheckEx(0x1C6u, 0i64, (PVOID)CurrentIrql, (PVOID)1, 0i64);
if( (v12->Tcb.ApcState.InProgressFlags & 2) != 0 )
KeBugCheckEx(0x1C6u, (PVOID)6, 0i64, 0i64, 0i64);
if( !CurrentIrql && (v12->Tcb._bf_0 & 0x400) == 0 && !v12->Tcb.WaitBlock[3].SpareLong )
KeBugCheckEx(0x1C6u, (PVOID)7, 0i64, 0i64, 0i64);
}
if( v8 )
{
OwnerEntryForLegacyShim = ExpAllocateOwnerEntryForLegacyShim();
if( !(unsigned __int8)ExAcquireFastResourceShared((ULONG_PTR)v7, (ULONG_PTR)OwnerEntryForLegacyShim) )
ExFreePoolWithTag(OwnerEntryForLegacyShim, 0);
}
else
{
ExpAcquireResourceSharedLite(v7, 1);
}
v5 = 1;
}
v9 = AuthzBasepFindSecurityAttribute(
*((_AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION **)AccessToken + 97),
AttributeName,
(UINT8)a3) != 0i64;
if( v5 )
{
ExReleaseResourceLite(*((PERESOURCE *)AccessToken + 6));
KeLeaveCriticalRegion();
}
return v9;
}Referenced by:
ExpGetProcessInformation
PsQueryProcessAttributesByToken
SepVerifyDesktopAppxPackageName