IOCTL_HPMI_QUERY_CAPABILITIES IOCTL (hpmi.h)
[某些信息与预发行的产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。
IOCTL_HPMI_QUERY_CAPABILITIES命令将发送到 HPMI 支持的查询功能和 HPMI 请求的 Windows 服务。 发现新的 HPMI 驱动程序实例后,Windows 会将此 IOCL 颁发给 HPMI。
主要代码
输入缓冲区
I/O 请求数据包 (IRP) 的 AssociatedIrp.SystemBuffer 成员指向一个发起程序分配的缓冲区,该缓冲区既用作请求的输入缓冲区,也用作请求的输出缓冲区。 在输入时,此缓冲区包含一个 HPMI_QUERY_CAPABILITIES 结构,在该结构中版本设置为有效值。
输入缓冲区长度
IRP 当前 I/O 堆栈位置 (IO_STACK_LOCATION) 的 Parameters.DeviceIoControl.InputBufferLength 成员设置为 AssociatedIrp.SystemBuffer 成员指向的缓冲区的大小(以字节为单位)。 此大小必须大于或等于 HPMI_QUERY_CAPABILITIES 结构的大小,否则请求将失败并出现错误状态STATUS_INVALID_PARAMETER。
输出缓冲区
如果请求成功完成,则 AssociatedIrp.SystemBuffer 成员指向的缓冲区包含请求的 HPMI 功能信息。 位于此缓冲区的开头是一个 HPMI_QUERY_CAPABILITIES_RESPONSE 结构,用于指示缓冲区中信息的类型和大小。
输出缓冲区长度
IRP 当前 I/O 堆栈位置的 Parameters.DeviceIoControl.OutputBufferLength 成员设置为由 AssociatedIrp.SystemBuffer 成员指向的缓冲区的大小(以字节为单位)。 若要使请求成功,此大小必须足够大,才能包含 HPMI_QUERY_CAPABILITIES_RESPONSE中所述的 HPMI 功能。 否则,请求将失败并出现错误状态STATUS_BUFFER_TOO_SMALL。
输入/输出缓冲区
待定
输入/输出缓冲区长度
待定
状态块
Irp->IoStatus.Status 设置为STATUS_SUCCESS(如果请求成功)。 否则,状态 相应的错误条件作为 NTSTATUS 代码,例如STATUS_INVALID_PARAMETER。
言论
IOCTL_HPMI_QUERY_CAPABILITIES 请求查询电源表的 HPMI 功能或资产信息。 输入 HPMI_QUERY_CAPABILITIES 结构值指定要返回的功能信息的类型。 输出缓冲区的数据类型和内容因请求的数据而异。
此 IOCTL 可能会多次发出,HPMI 必须使用相同的响应
HPMI_QUERY_CAPABILITIES_RESPONSE中的信息,作为对所有信息的响应
后续 IOCTL 调用。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows 10 版本 1709 及更高版本的 Windows作系统中可用。 |
标头 | hpmi.h (包括 Hpmi.h) |
另请参阅
WdfIoTargetSendInternalIoctlOthersSynchronously