SepSidInTokenSidHash
UINT8 __stdcall SepSidInTokenSidHash(
_SID_AND_ATTRIBUTES_HASH *SidHash,
VOID *PrincipalSelfSid,
VOID *Sid,
UINT8 DenyAce,
UINT8 Restricted,
UINT8 TokenIsOwner){
void *v7;
_SID_AND_ATTRIBUTES *v10;
unsigned int Attributes;
char v13;
v7 = Sid;
if( !DenyAce && v13 && Sid && RtlEqualSid(SeAliasAdminsSid, Sid) )
return 0;
if( PrincipalSelfSid && RtlEqualSid(SePrincipalSelfSid, v7) )
v7 = PrincipalSelfSid;
if( TokenIsOwner && RtlEqualSid(SeOwnerRightsSid, v7) )
return 1;
v10 = (_SID_AND_ATTRIBUTES *)RtlSidHashLookup((INT64)SidHash, (UINT64 *)v7);
if( v10
&& (!Restricted && v10 == SidHash->SidAttr && ((v10->Attributes & 0x10) == 0 || DenyAce)
|| (Attributes = v10->Attributes, (Attributes & 4) != 0)
|| DenyAce && (Attributes & 0x10) != 0) )
{
return 1;
}
else
{
return 0;
}
}Referenced by:
AuthzBasepDeviceMemberOf
ObpCreateHandle
SeAccessCheckWithHintWithAdminlessChecks
SepIsImpersonationAllowedDueToCapability
SepMatchCapability
SepSidInToken