THERMAL_POLICY
The THERMAL_POLICY struct is used with the IOCTL_THERMAL_READ_POLICY IO control code. Policy drivers use IOCTL_THERMAL_READ_POLICY to set the thermal policy for their associated thermal zone. If no thermal policy is specified, then the kernel uses the policies specified by the ACPI objects and methods declared under the thermal zone, as described in the ACPI specification.
Syntax
C++ |
---|
|
Members
Version
Specifies the version of the policy structure. The current version is THERMAL_POLICY_VERSION_1.
WaitForUpdate
Specifies if the policy driver should complete the IOCTL_THERMAL_READ_POLICY IOCTL immediately. If the state is up to date and WaitForUpdate is TRUE, the policy driver should pend the IOCTL in a cancellable state until one of its policy preferences has changed, at which point it should complete the IOCTL with the new preferences. If the state is not up to date or WaitForUpdate is FALSE, the policy driver should immediately complete the IOCTL with the new preferences.
Hibernate
The policy driver specifies TRUE to indicate that the system should hibernate to address a thermal condition. Once the thermal condition has been resolved, the policy driver should set this member to FALSE. If the system does not support hibernate or if hibernate is disabled, the system will shut down instead.
Critical
The policy driver specifies TRUE to indicate that the system should shut down to address a thermal condition.
ThermalStandby
The policy driver specifies TRUE to indicate that the system should enter standby to address a thermal condition. Once the thermal condition has been resolved, the policy driver should set this member to FALSE.
ActivationReasons
Specifies why the thermal zone is throttled.
0x00000000
Indicates that the zone isn't throttled.
#define TZ_ACTIVATION_REASON_THERMAL 0x00000001
Indicates that the zone is throttled for thermal reasons.
#define TZ_ACTIVATION_REASON_CURRENT 0x00000002
Indicates that the zone is throttled because the system cannot deliver sufficient current.
PassiveLimit
Specifies the amount by which the thermal zone should be throttled. 100 represents unthrottled while 0 represents fully throttled.
ActiveLevel
Specifies the index (from 0 through 9) of the current set of active cooling devices that should be engaged. For example, setting an ActiveLevel of 4 would engage all devices in the thermal zone’s _AL4 device list, as well as any higher-indexed device lists (_AL5, etc.). Specifying 10 will disable all active cooling devices.