PoUserShutdownInitiated

VOID __stdcall PoUserShutdownInitiated(){
  char v0; 
  if( !PsIsCurrentThreadInServerSilo() )
  {
    PopTransitionCheckpoint(7i64);
    PopQueueWorkItem((INT64)&PopSetUserShutdownMarkerWorkItem, DelayedWorkQueue);
    if( qword_140C540F8 )
    {
      PopAcquirePolicyLock();
      if( PopUserShutdownInProgress )
      {
        PopReleasePolicyLock();
      }
      else
      {
        PopUserShutdownInProgress = 1;
        if( !byte_140C23F54 )
        {
          *((_QWORD *)PopUserShutdownDelayWorker + 3) = 0i64;
          *(_QWORD *)PopUserShutdownDelayWorker = 0i64;
          *((_QWORD *)PopUserShutdownDelayWorker + 2) = PopUserShutdownDelayWorkerCallback;
          KeInitializeTimerEx((PKTIMER)PopUserShutdownDelayTimer, NotificationTimer);
          KeInitializeDpc((PRKDPC)PopUserShutdownDelayDpc, PopUserShutdownDelayDpcCallback, 0i64);
          byte_140C23F54 = 1;
        }
        PopBsdShutdownInProgress = 1;
        PopReleasePolicyLock();
        v0 = ((__int64(*)(void))qword_140C540F8)();
        KiSetTimerEx(
          (_KTIMER *)PopUserShutdownDelayTimer,
          (_LARGE_INTEGER)-900000000i64,
          0i64,
          0,
          (_KDPC *)PopUserShutdownDelayDpc);
        if( v0 )
          PpmBeginHighPerfRequest();
      }
    }
  }
}

Referenced by:

PopPowerInformationInternal