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