PspCompleteServerSiloShutdown

VOID __stdcall PspCompleteServerSiloShutdown(PEJOB ServerSilo){
  void *v2; 
  __int64 *ServerSiloGlobals; 
  if( (unsigned int)PsGetServerSiloState((INT64)ServerSilo) != 3 )
    NT_ASSERT("PsGetServerSiloState(ServerSilo) == SERVERSILO_TERMINATING");
  ObfReferenceObject(v2);
  ServerSiloGlobals = PsGetServerSiloGlobals((__int64)ServerSilo);
  ServerSiloGlobals[143] = 0i64;
  ServerSiloGlobals[145] = (__int64)PspCompleteServerSiloShutdownDeferred;
  ServerSiloGlobals[146] = (__int64)ServerSilo;
  ExQueueWorkItem((WORK_QUEUE_ITEM *)(ServerSiloGlobals + 143), DelayedWorkQueue);
}

Referenced by:

PspTerminateProcessesJobCallback