RtlSetSaclSecurityDescriptor
NTSTATUS __stdcall RtlSetSaclSecurityDescriptor(
VOID *SecurityDescriptor,
UINT8 SaclPresent,
_ACL *Sacl,
UINT8 SaclDefaulted){
__int16 v5;
__int16 v6;
__int16 v8;
_ACL *v9;
__int16 v10;
if( *(_BYTE *)SecurityDescriptor != 1 )
return -1073741736;
v5 = *((_WORD *)SecurityDescriptor + 1);
if( v5 >= 0 )
{
if( SaclPresent )
{
v8 = v5 | 0x10;
v9 = 0i64;
if( Sacl )
v9 = Sacl;
*((_QWORD *)SecurityDescriptor + 3) = v9;
v10 = v8 & 0xFFDF;
*((_WORD *)SecurityDescriptor + 1) = v10;
if( !SaclDefaulted )
return 0;
v6 = v10 | 0x20;
}
else
{
v6 = v5 & 0xFFEF;
}
*((_WORD *)SecurityDescriptor + 1) = v6;
return 0;
}
return -1073741703;
}Referenced by:
CmpCopySaclToVirtualKey
CmpGenerateAppHiveSecurityDescriptor
ExpKeyedEventInitialization
IopCreateSecurityDescriptorPerType
LocalConvertStringSDToSD_Rev1
ObInitSystem
ObpVerifyAccessToBoundaryEntry
SeMakeSystemToken
SepBuildCapeSecurityDescriptor
SepInitProcessAuditSd
SepInitSystemDacls