PopThermalTelemetryWorker

VOID __stdcall PopThermalTelemetryWorker(PVOID Context){
  _ETHREAD *CurrentThread; 
  PVOID *i; 
  INT64 v3; 
  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( *((_BYTE *)i + 145) )
    {
      PopThermalUpdatePassiveTimeTracking((_POP_THERMAL_TELEMETRY_TRACKER *)(i + 63), *((_BYTE *)i + 80));
      PopTraceThermalZonePassiveHistogram((INT64)i);
    }
    if( *((_BYTE *)i + 505) )
    {
      LOBYTE(v3) = *((_BYTE *)i + 69);
      PopThermalUpdateActiveTimeTracking((INT64)(i + 63), v3);
      PopTraceThermalZoneActiveActivity((INT64)i);
    }
    PopReleaseRwLock((UINT64)(i + 54));
  }
  PopReleaseRwLock((UINT64)&PopPolicyDeviceLock);
  PopCoolingTelemetryWorker();
  _InterlockedExchange(&dword_140C22D28, 0);
}

Referenced by:

No references.