AdtpBuildLogonIdStrings

NTSTATUS __stdcall AdtpBuildLogonIdStrings(
        _LUID *LogonId,
        PVOID *ppSid,
        UINT8 *FreeSid,
        _UNICODE_STRING *ResultantString1,
        UINT8 *FreeWhenDone1,
        _UNICODE_STRING *ResultantString2,
        UINT8 *FreeWhenDone2){
  int LogonSessionAccountInfo; 
  WCHAR v12; 
  NTSTATUS v13; 
  WCHAR v15; 
  WCHAR v16; 
  LogonSessionAccountInfo = SepGetLogonSessionAccountInfo(LogonId, ResultantString1, ResultantString2, ppSid);
  v13 = LogonSessionAccountInfo;
  if( LogonSessionAccountInfo < 0 )
  {
    if( LogonId->LowPart != 999 || LogonId->HighPart )
    {
      if( LogonSessionAccountInfo != -1073741729 )
        return v13;
      RtlInitUnicodeString(ResultantString1, L"-", v12);
      RtlInitUnicodeString(ResultantString2, L"-", v16);
      *FreeWhenDone1 = 0;
      *FreeWhenDone2 = 0;
      if( ppSid )
      {
        *FreeSid = 0;
        *ppSid = &AdtpNullSid;
      }
    }
    else
    {
      RtlInitUnicodeString(ResultantString1, L"SYSTEM", v12);
      RtlInitUnicodeString(ResultantString2, L"SYSTEM", v15);
      *FreeWhenDone1 = 0;
      *FreeWhenDone2 = 0;
    }
    return 0;
  }
  if( ResultantString1->Buffer )
    *FreeWhenDone1 = 1;
  else
    RtlInitUnicodeString(ResultantString1, L"-", v12);
  if( ResultantString2->Buffer )
    *FreeWhenDone2 = 1;
  else
    RtlInitUnicodeString(ResultantString2, L"-", v12);
  if( ppSid && FreeSid )
    *FreeSid = 1;
  return v13;
}

Referenced by:

AdtpPackageParameters