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.