ObpInitObjectTypeSD
NTSTATUS __stdcall ObpInitObjectTypeSD(VOID *Object, VOID *SecurityDescriptor){
VOID *v4;
NTSTATUS v5;
int v6;
PVOID P;
PVOID OutputSecurityDescriptor;
OutputSecurityDescriptor = 0i64;
P = SecurityDescriptor;
v4 = SecurityDescriptor;
if( SecurityDescriptor || (v5 = ObpCreateDefaultObjectTypeSD(&P), v4 = P, v6 = v5, v5 >= 0) )
{
v6 = ObLogSecurityDescriptor(v4, &OutputSecurityDescriptor, 0x10ui64);
if( v6 >= 0 )
{
if( OutputSecurityDescriptor )
*((_QWORD *)Object - 1) = (char *)OutputSecurityDescriptor + 15;
else
*((_QWORD *)Object - 1) = 0i64;
}
}
if( v4 && !SecurityDescriptor )
ExFreePoolWithTag(v4, 0);
return v6;
}Referenced by:
ObCreateObjectTypeEx
ObInitSystem