SeConvertSecurityDescriptorToStringSecurityDescriptor
INT64 __fastcall SeConvertSecurityDescriptorToStringSecurityDescriptor(
VOID *SecurityDescriptor,
VOID *RequestedStringSDRevision,
UINT64 SecurityInformation,
WCHAR **StringSecurityDescriptor,
UINT64 *StringSecurityDescriptorLen){
unsigned int v6;
INT64 result;
WCHAR *v8;
v6 = 0;
if( SecurityDescriptor && (_DWORD)SecurityInformation || !StringSecurityDescriptor )
{
if( SecurityDescriptor && StringSecurityDescriptor && (_DWORD)SecurityInformation )
{
if( (_DWORD)RequestedStringSDRevision != 1 )
{
LOWORD(result) = 1305;
return(unsigned __int16)result | 0xC0070000;
}
result = LocalConvertSDToStringSD_Rev1(
SecurityDescriptor,
(UINT64)RequestedStringSDRevision,
(WCHAR **)SecurityInformation,
(UINT64 *)SecurityDescriptor);
}
else
{
result = 87i64;
}
if( (int)result <= 0 )
return result;
return(unsigned __int16)result | 0xC0070000;
}
SddlpAlloc(2u, (UINT64)RequestedStringSDRevision);
*StringSecurityDescriptor = v8;
if( v8 )
{
*v8 = 0;
if( StringSecurityDescriptorLen )
*(_DWORD *)StringSecurityDescriptorLen = 0;
}
else
{
v6 = 8;
}
if( v6 )
v6 |= 0xC0070000;
return v6;
}Referenced by:
AdtpBuildAccessReasonAuditStringInternal
AdtpBuildSecurityDescriptorUnicodeString
CmpLogHiveFileInaccessible