PoSetThermalActiveCooling

NTSTATUS __stdcall PoSetThermalActiveCooling(VOID *ThermalRequest, UINT8 Engaged){
  NTSTATUS v4; 
  _POP_COOLING_EXTENSION *v5; 
  char v6; 
  INT64 v7; 
  char v8; 

  v4 = 0;
  if( !PoGetThermalRequestSupport(ThermalRequest, PoThermalRequestActive) )
    return -1073741637;
  v5 = (_POP_COOLING_EXTENSION *)*((_QWORD *)ThermalRequest + 4);
  v6 = Engaged != 0;
  PopAcquireRwLockExclusive(&v5->Lock);
  if( *((_BYTE *)ThermalRequest + 18) )
  {
    v8 = *((_BYTE *)ThermalRequest + 17);
    if( v8 != v6 )
    {
      LOBYTE(v7) = v8 == 0;
      PopThermalUpdateActiveTimeTracking((INT64)ThermalRequest + 40, v7);
      *((_BYTE *)ThermalRequest + 17) = v6;
      PopDiagTraceThermalRequestActiveUpdate((__int64)ThermalRequest);
      PopPropogateCoolingChange(v5);
    }
  }
  else
  {
    v4 = -1073741431;
  }
  PopReleaseRwLock(&v5->Lock);
  return v4;
}

Referenced by:

No references.