PopThermalPollingPowerSettingCallback

INT64 __stdcall PopThermalPollingPowerSettingCallback(){
  char v0; 
  _ETHREAD *CurrentThread; 
  PVOID *i; 
  void *v4; 
  void *v5; 
  void *v6; 
  PopAcquireRwLockExclusive(&PopThermalLock);
  v0 = !PopPdcIdleResiliency || dword_140C23D0C != 1;
  if( PopThermalPollingMode && PopThermalPollingWakesAllowed != v0 )
  {
    PopThermalPollingWakesAllowed = v0;
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --*((_WORD *)CurrentThread + 242);
    ExAcquirePushLockSharedEx((UINT64)&PopPolicyDeviceLock, 0i64);
    for( i = (PVOID *)PopThermal; i != &PopThermal; i = (PVOID *)*i )
    {
      PopAcquireRwLockExclusive((_POP_RW_LOCK *)i + 27);
      if( *((_DWORD *)i + 58) || (*((_BYTE *)i + 65) & 1) != 0 && *((_DWORD *)i + 26) )
        IoCancelIrp((KDPC *)i[7], v4, v5, v6);
      PopReleaseRwLock((UINT64)(i + 54));
    }
    PopReleaseRwLock((UINT64)&PopPolicyDeviceLock);
  }
  PopReleaseRwLock((UINT64)&PopThermalLock);
  return 0i64;
}

Referenced by:

No references.