PopThermalPollingPowerSettingCallback
NTSTATUS __stdcall PopThermalPollingPowerSettingCallback(){
char v0;
_ETHREAD *CurrentThread;
_POP_RW_LOCK *i;
void *v4;
void *v5;
void *v6;
PopAcquireRwLockExclusive(&PopThermalLock);
v0 = !PopPdcIdleResiliency || *(&stru_140C23628 + 441) != 1;
if( *(&stru_140C23628 + 579) && PopThermalPollingWakesAllowed != v0 )
{
PopThermalPollingWakesAllowed = v0;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockSharedEx((_EX_PUSH_LOCK *)&PopPolicyDeviceLock, 0i64);
for( i = (_POP_RW_LOCK *)*(&stru_140C23628 + 181);
i != (_POP_RW_LOCK *)((char *)&stru_140C23628 + 1448);
i = (_POP_RW_LOCK *)i->Lock._bf_0 )
{
PopAcquireRwLockExclusive(i + 27);
if( LODWORD(i[14].Thread) || (i[4].Lock._bf_0 & 0x100) != 0 && LODWORD(i[6].Thread) )
IoCancelIrp((_KDPC *)i[3].Thread, v4, v5, v6);
PopReleaseRwLock(i + 27);
}
PopReleaseRwLock((_POP_RW_LOCK *)&PopPolicyDeviceLock);
}
PopReleaseRwLock(&PopThermalLock);
return 0;
}Referenced by:
No references.