PEP_POWER_CONTROL_REQUEST 结构 (pep_x.h)
PEP_POWER_CONTROL_REQUEST 结构包含来自驱动程序的电源控制操作的请求。
语法
typedef struct _PEP_POWER_CONTROL_REQUEST {
[in] PEPHANDLE DeviceHandle;
[in] LPCGUID PowerControlCode;
[in] PVOID InBuffer;
[in] SIZE_T InBufferSize;
[in] PVOID OutBuffer;
[in] SIZE_T OutBufferSize;
[out] SIZE_T BytesReturned;
[out] NTSTATUS Status;
} PEP_POWER_CONTROL_REQUEST, *PPEP_POWER_CONTROL_REQUEST;
成员
[in] DeviceHandle
标识设备的 PEPHANDLE 值。 PEP 提供了此句柄,以响应以前的 PEP_DPM_REGISTER_DEVICE 通知。
[in] PowerControlCode
指向 GUID 值的指针,该值指定要执行的电源控制操作。 此值与请求驱动程序作为 PowerControlCode 参数提供给 PoFxPowerControl 例程的值相同。
[in] InBuffer
指向驱动程序分配的输入缓冲区的指针,该缓冲区包含此电源控制操作的输入参数。 此值与请求驱动程序作为 InBuffer 参数提供给 PoFxPowerControl 例程的值相同。
[in] InBufferSize
InBuffer 指向的缓冲区的大小(以字节为单位)。 此值与请求驱动程序作为 InBufferSize 参数提供给 PoFxPowerControl 例程的值相同。
[in] OutBuffer
指向驱动程序分配的输出缓冲区的指针,PEP 会将此电源控制操作的结果写入该缓冲区。 此值与请求驱动程序作为 OutBuffer 参数提供给 PoFxPowerControl 例程的值相同。
[in] OutBufferSize
OutBuffer 指向的缓冲区的大小(以字节为单位)。
[out] BytesReturned
PEP 写入 OutBuffer 指向的输出缓冲区的字节数。
[out] Status
请求的电源控制操作的状态。 如果操作成功,PEP 会将此成员设置为 STATUS_SUCCESS。 否则,PEP 会将此成员设置为适当的错误状态代码。
注解
此结构由 PEP_DPM_POWER_CONTROL_REQUEST 通知使用。 结构的前六个成员包含由 Windows 电源管理框架 (PoFx) 提供的输入值。 最后两个成员包含 PEP 为响应此通知而写入结构的值。 此外,PEP 会写入 OutBuffer 成员指向的输出缓冲区。
如果输出缓冲区太小而无法从操作接收所有结果数据,PEP 会将结构的 Status 成员设置为STATUS_INSUFFICIENT_RESOURCES,将 BytesReturned 成员设置为输出缓冲区所需的大小, (通常) 不向输出缓冲区写入任何数据。
设备的驱动程序可以调用 PoFxPowerControl 例程,以请求设备上的电源控制操作。 在此调用期间,PoFx 将此请求的处理委托给拥有设备的 PEP。 PEP_POWER_CONTROL_REQUEST 结构的 PowerControlCode 成员包含一个自定义控件代码,该设备的驱动程序和 PEP 都了解其含义。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 10 开始支持。 |
标头 | pep_x.h (包括 Pep_x.h) |