ObCreateKernelObjectsSD
NTSTATUS __stdcall ObCreateKernelObjectsSD(PSECURITY_DESCRIPTOR SecurityDescriptor){
int Acl;
NTSTATUS v3;
int v4;
unsigned int v5;
VOID **PoolWithTag;
UINT64 v7;
_ACL *v8;
Acl = RtlCreateSecurityDescriptor(SecurityDescriptor, 1ui64);
if( Acl >= 0 )
{
v3 = RtlLengthSid((INT64)SeWorldSid);
v4 = RtlLengthSid((INT64)SeAliasAdminsSid) + v3;
v5 = RtlLengthSid((INT64)SeLocalSystemSid) + 44 + v4;
PoolWithTag = ExAllocatePoolWithTag(1ui64, v5, 1818452292i64);
v8 = (_ACL *)PoolWithTag;
if( PoolWithTag )
{
Acl = RtlCreateAcl((PACL)PoolWithTag, (_ACL)v5, 2ui64, v7);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v8, 2ui64, 0i64, 0x20003ui64, SeWorldSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v8, 2ui64, 0i64, 0xF000Fui64, SeAliasAdminsSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v8, 2ui64, 0i64, 0xF000Fui64, SeLocalSystemSid, 0);
if( Acl >= 0 )
{
Acl = RtlSetDaclSecurityDescriptor(SecurityDescriptor, 1u, v8, 0);
if( Acl >= 0 )
{
v8 = 0i64;
Acl = 0;
}
}
}
}
}
if( v8 )
ExFreePoolWithTag(v8, 0);
}
else
{
return -1073741670;
}
}
return Acl;
}Referenced by:
MiCreatePartitionNamespace
ObpInitializeRootNamespace