SeInitServerSilo

NTSTATUS __stdcall SeInitServerSilo(_EJOB *ServerSilo){
  _ESERVERSILO_GLOBALS *ServerSiloGlobals; 
  INT64 v3; 
  _EJOB *v4; 
  _EJOB *v5; 
  signed int LogonSessionTrack; 

  if( PsIsHostSilo(ServerSilo) )
    KeBugCheckEx(0x33u, 0i64, 0i64, 0i64, 0i64);
  ServerSiloGlobals = PsGetServerSiloGlobals(ServerSilo);
  LODWORD(v4) = PsAttachSiloToCurrentThread(v3);
  v5 = v4;
  LogonSessionTrack = SepCreateLogonSessionTrack((_LUID *)&SeSystemAuthenticationId);
  if( LogonSessionTrack >= 0 )
  {
    LogonSessionTrack = SepReferenceLogonSessionSilo(
                          (_LUID *)&SeSystemAuthenticationId,
                          ServerSilo,
                          &ServerSiloGlobals->SeSiloState.SystemLogonSession);
    if( LogonSessionTrack >= 0 )
    {
      LogonSessionTrack = SepCreateLogonSessionTrack((_LUID *)&SeAnonymousAuthenticationId);
      if( LogonSessionTrack < 0 )
        goto LABEL_9;
      LogonSessionTrack = SepReferenceLogonSessionSilo(
                            (_LUID *)&SeAnonymousAuthenticationId,
                            ServerSilo,
                            &ServerSiloGlobals->SeSiloState.AnonymousLogonSession);
      if( LogonSessionTrack >= 0 )
      {
        LogonSessionTrack = SepInitializationPhase1() == 0 ? 0xC0000001 : 0;
        goto LABEL_9;
      }
    }
    SepDeleteLogonSessionTrack((_LUID *)&SeSystemAuthenticationId, 0);
  }
LABEL_9:
  PsDetachSiloFromCurrentThread(v5);
  return LogonSessionTrack;
}

Referenced by:

PspInitializeServerSiloDeferred