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.