PspInitializeServerSiloDeferred

NTSTATUS __stdcall PspInitializeServerSiloDeferred(VOID *Parameter){
  _ESERVERSILO_GLOBALS *ServerSiloGlobals; 
  __int64 v3; 
  NTSTATUS result; 
  NTSTATUS inited; 

  ServerSiloGlobals = PsGetServerSiloGlobals((_EJOB *)Parameter);
  result = sub_1405B03A8(v3);
  if( result >= 0 )
  {
    result = PspSiloInitializeUserSharedData((_EJOB *)Parameter);
    if( result >= 0 )
    {
      result = PspSiloInitializeSystemRootSymlink((_EJOB *)Parameter);
      if( result >= 0 )
      {
        result = PspInitializeProtectedProcessParameters((INT64)ServerSiloGlobals);
        if( result >= 0 )
        {
          result = PspSiloLoadApiSets((_EJOB *)Parameter);
          if( result >= 0 )
          {
            result = PspSiloInitializeIsMultiSessionSku((_EJOB *)Parameter);
            if( result >= 0 )
            {
              inited = ObInitServerSilo((_EJOB *)Parameter);
              if( inited < 0 )
                goto LABEL_16;
              result = ExpTimeZoneInitSiloState((INT64)Parameter);
              if( result < 0 )
                return result;
              inited = SeInitServerSilo((_EJOB *)Parameter);
              if( inited < 0
                || (inited = CmInitServerSiloState((_EJOB *)Parameter), inited < 0)
                || (inited = EtwInitializeSiloState((_EJOB *)Parameter), inited < 0)
                || (inited = DbgkInitializeServerSilo((_EJOB *)Parameter), inited < 0) )
              {
LABEL_16:
                ServerSiloGlobals->State = SERVERSILO_TERMINATED;
                PspDeleteExternalServerSiloState((_EJOB *)Parameter);
              }
              else
              {
                inited = PspNotifyServerSiloCreation((_EJOB *)Parameter);
                if( inited >= 0 )
                  return 0;
                PsTerminateServerSilo();
              }
              return inited;
            }
          }
        }
      }
    }
  }
  return result;
}

Referenced by:

PspQueueDeferredWorkAndWait