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) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |