LocalConvertSidToStringSidW
INT64 __stdcall LocalConvertSidToStringSidW(VOID *Sid, WCHAR **StringSid){
INT64 result;
UINT64 v4;
__int64 Length;
WCHAR *v6;
struct _UNICODE_STRING UnicodeString;
UnicodeString = 0i64;
if( !Sid || !StringSid )
return 3221225485i64;
LODWORD(result) = RtlConvertSidToUnicodeString(&UnicodeString, Sid, 1u);
if( (int)result >= 0 )
{
Length = UnicodeString.Length;
SddlpAlloc(LOBYTE(UnicodeString.Length) + 2, v4);
*StringSid = v6;
if( v6 )
{
LODWORD(result) = RtlStringCbCopyNW(v6, Length + 2, UnicodeString.Buffer, (unsigned int)Length);
if( (int)result >= 0 )
{
RtlFreeAnsiString(&UnicodeString);
return 0i64;
}
}
else
{
RtlFreeAnsiString(&UnicodeString);
return 3221225495i64;
}
}
return result;
}Referenced by:
LocalConvertAclToString
LocalGetStringForSid
SeConvertSidToStringSid