// pmi.h
typedef struct _PMI_REPORTED_CAPABILITIES {
ULONG Flags;
PMI_MEASUREMENT_UNIT MeasurementUnit;
PMI_MEASUREMENT_TYPE MeasurementType;
ULONG Accuracy;
ULONG SamplingPeriod;
ULONG MinimumAverageInterval;
ULONG MaximumAverageInterval;
ULONG Hysteresis;
BOOLEAN Writeable;
ULONG MinBudget;
ULONG MaxBudget;
WCHAR ModelNumber[PMI_NAME_MAX];
WCHAR SerialNumber[PMI_NAME_MAX];
WCHAR OEMInformation[PMI_NAME_MAX];
} PMI_REPORTED_CAPABILITIES, *PPMI_REPORTED_CAPABILITIES;
View the official Windows Driver Kit DDI referenceNo description available.
The PMI_REPORTED_CAPABILITIES structure contains information about the type of power metering and budgeting capabilities a power meter supports. Additionally, this structure contains asset information about the power meter itself.
FlagsA bitmask that specifies the supported capabilities of the power meter. The following flags define the range of values for this member:
This bit is set if the power meter supports power measurement.
This bit is set if the power meter supports power thresholds.
This bit is set if the power meter supports power budgeting.
This bit is set if the power meter reports data only when the power supply is discharging. This is typically the case on mobile battery systems or some uninterruptible power supplies (UPSs).
MeasurementUnitA PMI_MEASUREMENT_UNIT enumeration value that specifies the measurement unit.
Note Beginning with Windows 7, Windows Server 2008 R2, only measurement units of milliwatts (mW) are supported.
MeasurementTypeA PMI_MEASUREMENT_TYPE enumeration value that specifies the measurement type, such as whether input or output power is measured.
AccuracyA value, in units of thousandths of a percent, that specifies the reported accuracy of the power meter. For example, a value of 1,000 corresponds to a one percent accuracy rating.
SamplingPeriodA value, in units of milliseconds, that specifies the current averaging period.
MinimumAverageIntervalA value, in units of milliseconds, that specifies the minimum averaging interval.
MaximumAverageIntervalA value, in units of milliseconds, that specifies the maximum averaging interval.
HysteresisA value, in units of milliseconds, that specifies the hysteresis value. This value indicates the margin that is built around the threshold and budget events. This value prevents the trigger of unnecessary events when the reading fluctuates very close to one of the thresholds.
WriteableA Boolean value that indicates whether the budgeting information is read/write (TRUE) or read-only (FALSE).
MinBudgetA value, in units of watts, that specifies the minimum supported power budget.
MaxBudgetA value, in units of watts, that specifies the maximum supported power budget.
ModelNumberA null-terminated, Unicode string that contains the model number of the power meter.
SerialNumberA null-terminated, Unicode string that contains the serial number of the power meter.
OEMInformationA null-terminated, Unicode string that contains descriptive information about the power meter. This information is specific to the implementation by the original OEM.
The PMI_REPORTED_CAPABILITIES structure contains the following information about a power meter:
The PMI_REPORTED_CAPABILITIES structure is returned through an IOCTL_PMI_GET_CAPABILITIES I/O control (IOCTL) query request. The input data for this query request is set to the PMI_CAPABILITIES_TYPE enumerator value of PmiReportedCapabilities..
If the query request completes successfully, the request returns a PMI_CAPABILITIES structure. The Capabilities member of this structure is formatted as a PMI_REPORTED_CAPABILITIES structure.