SeConvertSecurityDescriptorToStringSecurityDescriptor
NTSTATUS __stdcall SeConvertSecurityDescriptorToStringSecurityDescriptor(
VOID *SecurityDescriptor,
VOID *SecurityInformation,
WCHAR **StringSecurityDescriptor,
WCHAR **StringSecurityDescriptorLen,
UINT64 *StringSecurityDescriptorLena){
NTSTATUS v6;
NTSTATUS result;
WCHAR *v8;
UINT64 StringSecurityDescriptora;
v6 = 0;
if( SecurityDescriptor && (_DWORD)StringSecurityDescriptor || !StringSecurityDescriptorLen )
{
if( SecurityDescriptor && StringSecurityDescriptorLen && (_DWORD)StringSecurityDescriptor )
{
if( (_DWORD)SecurityInformation != 1 )
{
LOWORD(result) = 1305;
return(unsigned __int16)result | 0xC0070000;
}
LODWORD(StringSecurityDescriptora) = (_DWORD)StringSecurityDescriptor;
result = LocalConvertSDToStringSD_Rev1(
SecurityDescriptor,
SecurityInformation,
StringSecurityDescriptor,
SecurityDescriptor,
StringSecurityDescriptora,
StringSecurityDescriptorLen,
StringSecurityDescriptorLena);
}
else
{
result = 87;
}
if( result <= 0 )
return result;
return(unsigned __int16)result | 0xC0070000;
}
v8 = (WCHAR *)SddlpAlloc(2ui64, (UINT8)SecurityInformation, (UINT64)StringSecurityDescriptor);
*StringSecurityDescriptorLen = v8;
if( v8 )
{
*v8 = 0;
if( StringSecurityDescriptorLena )
*(_DWORD *)StringSecurityDescriptorLena = 0;
}
else
{
v6 = 8;
}
if( v6 )
return v6 | 0xC0070000;
return v6;
}Referenced by:
AdtpBuildAccessReasonAuditStringInternal
AdtpBuildSecurityDescriptorUnicodeString
CmpLogHiveFileInaccessible