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