PoCreatePowerRequest 函数 (ntifs.h)

PoCreatePowerRequest 例程创建电源请求对象。

语法

NTSTATUS PoCreatePowerRequest(
  [out] PVOID                   *PowerRequest,
  [in]  PDEVICE_OBJECT          DeviceObject,
  [in]  PCOUNTED_REASON_CONTEXT Context
);

参数

[out] PowerRequest

指向例程将指针写入到新创建的电源请求对象的位置的指针的指针。 如果调用失败,则例程会将 NULL 写入此位置。

[in] DeviceObject

指向调用方设备对象的指针(DEVICE_OBJECT 结构)。

[in] Context

指向 COUNTED_REASON_CONTEXT 结构的指针,该结构描述调用方创建电源请求对象的原因。 此参数是可选的,可以设置为 NULL。

返回值

PoCreatePowerRequest 如果调用成功,则返回STATUS_SUCCESS。 如果调用失败,可能的错误代码包括:

返回代码 描述
STATUS_INVALID_PARAMETER DeviceObject 参数为 NULL。
STATUS_INSUFFICIENT_RESOURCES 没有足够的内存可用于创建电源请求对象。

言论

此例程创建电源请求对象。 若要启用电源请求,调用方应创建一个电源请求对象,并将该对象用于对 PoSetPowerRequest 的所有调用,并 PoClearPowerRequest 例程。

驱动程序可以使用电源请求来替代计算机默认电源行为的某些方面。 例如,电视接收器设备的驱动程序可以使用电源请求来防止 电源管理器 在长时间内自动将显示器留空,在此期间不会发生用户交互。

不再需要电源请求对象时,调用方必须通过调用 PoDeletePowerRequest 例程来删除该对象。 驱动程序必须先删除电源请求对象,然后才能删除用于创建电源请求对象的设备对象。

要求

要求 价值
最低支持的客户端 Windows 7
目标平台 普遍
标头 ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

PoClearPowerRequest

PoDeletePowerRequest

PoSetPowerRequest