PopSystemIdleWorker
NTSTATUS __stdcall PopSystemIdleWorker(){
int v1;
UINT64 v3;
v3 = 0i64;
if( !PopPlatformAoAc )
KeBugCheckEx(0xA0u, (PVOID)0xA, (PVOID)0x100, 0i64, 0i64);
PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
while( _BitScanForward((unsigned int *)&v1, *(&PopIrpWorkerControlEvent + 56)) )
{
_InterlockedAnd((_DWORD *)&PopIrpWorkerControlEvent + 56, ~(1 << v1));
if( v1 == 2 )
PopPulseSystemIdleEvent(2ui64);
}
PopUpdateLastUserInputTime();
PopIsSystemIdle((INT64)&qword_140C0F1A8, (unsigned int)dword_140C0F194, &v3, (INT64)&qword_140C0F2A8);
LODWORD(dword_140C0F288) = PopSystemIdleContext;
PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
PopIdleDetection();
PopExecuteSystemIdleAction((_LOADER_PARAMETER_BLOCK *)(unsigned int)dword_140C0F288);
PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
LODWORD(dword_140C0F288) = 0;
PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 15);
return 0;
}Referenced by:
No references.