PEP_POWER_CONTROL_REQUEST 结构 (pepfx.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 开始支持。
标头 pepfx.h (包括 Pep_x.h)

另请参阅

PEP_DPM_POWER_CONTROL_REQUEST

PEP_DPM_REGISTER_DEVICE

PoFxPowerControl