PopRundownThermalRequests

VOID __stdcall PopRundownThermalRequests(){
  _POP_COOLING_EXTENSION *i; 
  _LIST_ENTRY *j; 
  PopAcquireRwLockExclusive(&PopCoolingExtensionLock);
  for( i = PopCoolingExtensionList;
        i != (_POP_COOLING_EXTENSION *)&PopCoolingExtensionList;
        i = (_POP_COOLING_EXTENSION *)i->Link.Flink )
  {
    if( i->Enabled )
    {
      PopAcquireRwLockExclusive(&i->Lock);
      PopDiagTraceCoolingExtension(i, (_EVENT_DESCRIPTOR *)&POP_ETW_EVENT_COOLING_EXTENSION_RUNDOWN);
      for( j = i->RequestListHead.Flink; j != &i->RequestListHead; j = j->Flink )
      {
        if( BYTE2(j[1].Flink) )
          PopDiagTraceThermalRequest(j, POP_ETW_EVENT_THERMAL_REQUEST_RUNDOWN);
      }
      PopReleaseRwLock((UINT64)&i->Lock);
    }
  }
  PopReleaseRwLock((UINT64)&PopCoolingExtensionLock);
}

Referenced by:

PopDiagTraceControlCallback