// wdm.h
typedef struct _PO_FX_COMPONENT_PERF_SET {
UNICODE_STRING Name;
ULONGLONG Flags;
PO_FX_PERF_STATE_UNIT Unit;
PO_FX_PERF_STATE_TYPE Type;
union {
struct {
ULONG Count;
PPO_FX_PERF_STATE States;
} Discrete;
struct {
ULONGLONG Minimum;
ULONGLONG Maximum;
} Range;
};
} PO_FX_COMPONENT_PERF_SET, *PPO_FX_COMPONENT_PERF_SET;
View the official Windows Driver Kit DDI referenceNo description available.
The PO_FX_COMPONENT_PERF_SET structure represents a set of performance states for a single component within a device.
NameAn optional character string used to describe the component property controlled by the performance state set. For example, "Clock frequency" or "Memory bandwidth".
FlagsSet to 0. Currently, no flags are defined for this member.
UnitA PO_FX_PERF_STATE_UNIT value that specifies the type of unit that is controlled by the performance state set.
TypeA PO_FX_PERF_STATE_TYPE value that specifies the type of performance states in the set (a discrete number of states or a continuous distribution of states between a minimum and maximum value).
DiscreteFor sets that represent a discrete number of performance states (that is, where the Type member is PoFxPerfStateTypeDiscrete), this nested structure describes the states.
Discrete.CountThe number of performance states in the set.
Discrete.StatesA pointer to a PO_FX_PERF_STATE array. The length of this array is specified by the Count member. Each array element describes one power state in the set.
RangeFor sets that represent a continuous distribution of performance states (that is, where the Type member is PoFxPerfStateTypeRange), this nested structure describes the minimum and maximum value of the range of performance states.
Range.MinimumThe minimum performance state value.
Range.MaximumThe maximum performance state value.
When a device driver calls the PoFxRegisterComponentPerfStates routine to register a component for performance state support with the power management framework (PoFx), the driver can supply a PO_FX_COMPONENT_PERF_INFO structure that describes the sets of the performance states supported by the component. The PerfStateSets member of the PO_FX_COMPONENT_PERF_INFO structure contains an array of PO_FX_COMPONENT_PERF_SET structures that represent the supported performance states.
Most drivers are expected to define a single set of performance states per component. For example, a driver might define one set of performance states to control the clock frequency for a component. However, some drivers may need to define more than one performance state set to control multiple dimensions of performance states for a component. For example, a driver might define two sets of performance states to control the clock frequency and bus bandwidth.
Device Performance State Management
PoFxRegisterComponentPerfStates