PopRundownThermalRequests
VOID __stdcall PopRundownThermalRequests(){
__int64 i;
__int64 *j;
PopAcquireRwLockExclusive(&PopCoolingExtensionLock);
for( i = PopCoolingExtensionList; (__int64 *)i != &PopCoolingExtensionList; i = *(_QWORD *)i )
{
if( *(_BYTE *)(i + 64) )
{
PopAcquireRwLockExclusive((_POP_RW_LOCK *)(i + 32));
PopDiagTraceCoolingExtension(i, (const _EVENT_DESCRIPTOR *)POP_ETW_EVENT_COOLING_EXTENSION_RUNDOWN);
for( j = *(__int64 **)(i + 16); j != (__int64 *)(i + 16); j = (__int64 *)*j )
{
if( *((_BYTE *)j + 18) )
PopDiagTraceThermalRequest(j, POP_ETW_EVENT_THERMAL_REQUEST_RUNDOWN);
}
PopReleaseRwLock((_POP_RW_LOCK *)(i + 32));
}
}
PopReleaseRwLock(&PopCoolingExtensionLock);
}Referenced by:
PopDiagTraceControlCallback