IOCTL_PMI_GET_CONFIGURATION IOCTL (pmi.h)

IOCTL_PMI_GET_CONFIGURATION 请求返回有关电源表的当前配置的信息。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer I/O 请求数据包(IRP)的成员指向一个发起程序分配的缓冲区,该缓冲区既用作输入缓冲区,又用作请求的输出缓冲区。 在输入时,此缓冲区包含一个 PMI_CONFIGURATION 结构,其中 版本ConfigurationType 成员设置为有效值。 ConfigurationType 成员包含一个 PMI_CONFIGURATION_TYPE 枚举值,该值指定要从电源表检索的配置信息的类型。 此值还确定要写入到输出缓冲区的配置信息的类型。

输入缓冲区长度

IRP 当前 I/O 堆栈位置 (IO_STACK_LOCATION) 的 Parameters.DeviceIoControl.InputBufferLength 成员设置为由 AssociatedIrp.SystemBuffer 成员指向的缓冲区的大小(以字节为单位)。 此大小必须大于或等于 sizeofPMI_CONFIGURATION),否则请求将失败并出现错误状态STATUS_INVALID_PARAMETER。

输出缓冲区

如果请求成功完成,则 AssociatedIrp.SystemBuffer 成员指向的缓冲区包含 PMI_CONFIGURATION 结构。 此结构包含请求的配置信息。

输出缓冲区长度

Parameters.DeviceIoControl.OutputBufferLength IRP 当前 I/O 堆栈位置的成员设置为由 AssociatedIrp.SystemBuffer 成员指向的缓冲区的大小(以字节为单位)。 若要使请求成功,此大小必须大于或等于 sizeofPMI_CONFIGURATION)。 否则,请求将失败,并出现错误状态STATUS_BUFFER_TOO_SMALL。

状态块

信息 成员设置为 PMI_CONFIGURATION 结构的大小(以字节为单位)。

状态 成员设置为以下值之一:

STATUS_BUFFER_TOO_SMALL

IRPParameters.DeviceIoControl.OutputBufferLength 成员小于 PMI_CONFIGURATION 结构的大小(以字节为单位)。

STATUS_INVALID_PARAMETER

发起方分配的输入缓冲区包含无效的 PMI_CONFIGURATION_TYPE 值。

STATUS_SUCCESS

支持 PMI 接口的 WDM 驱动程序已成功完成 IOCTL 请求。

言论

IOCTL_PMI_GET_CONFIGURATION 请求查询电源表的当前配置。 输入 PMI_CONFIGURATION_TYPE 枚举值指定要返回的配置数据类型。 输出缓冲区的数据类型和内容因请求的数据而异。

下表描述了为指定的 PMI_CONFIGURATION_TYPE 枚举值返回的数据类型。

PMI_CONFIGURATION_TYPE值 描述
PmiBudgetingConfiguration 一个 PMI_BUDGETING_CONFIGURATION 结构,其中包含有关电表的预算配置的信息。
PmiMeasurementConfiguration 一个 PMI_MEASUREMENT_CONFIGURATION 结构,包含有关电力计量的测量配置的信息。
PmiThresholdConfiguration 一个 PMI_THRESHOLD_CONFIGURATION 结构,其中包含有关电源表的阈值配置的信息。

要求

要求 价值
最低支持的客户端 在 Windows 7、Windows Server 2008 R2 和更高版本的 Windows作系统中可用。
标头 pmi.h (包括 Pmi.h)

另请参阅

IOCTL_PMI_GET_CAPABILITIES

IO_STACK_LOCATION

IRP

PMI_BUDGETING_CONFIGURATION

PMI_CAPABILITIES_TYPE

PMI_CONFIGURATION

PMI_CONFIGURATION_TYPE

PMI_MEASUREMENT_CONFIGURATION

PMI_THRESHOLD_CONFIGURATION