poRegisterSystemState 函数 (wdm.h)
由于某些活动, PoRegisterSystemState 例程将系统注册为忙碌。
语法
PVOID PoRegisterSystemState(
[in, out] PVOID StateHandle,
[in] EXECUTION_STATE Flags
);
参数
[in, out] StateHandle
指向注册状态句柄的调用方提供的缓冲区的指针。 缓冲区的大小(以字节为单位 )的大小为 (ULONG) 。 如果 为 NULL,则为新注册。 如果不是 NULL,则此参数指向先前调用 PoRegisterSystemState 返回的句柄。
[in] Flags
指示活动的类型,由以下一个或多个值的按位 OR 指定:
ES_SYSTEM_REQUIRED
无论明显负载如何,系统都不处于空闲状态。
ES_DISPLAY_REQUIRED
需要使用显示器。
ES_USER_PRESENT
用户存在。
ES_CONTINUOUS
这些设置是连续的,在显式更改之前应保持有效。
返回值
PoRegisterSystemState 返回句柄,稍后将用于更改或取消注册系统繁忙状态。 如果无法分配句柄,则返回 NULL 。
注解
PoRegisterSystemState 注册标志指示的系统繁忙状态。 注册一直持续,直到调用方通过另一次调用 PoRegisterSystemState 显式更改它,或者通过调用 PoUnregisterSystemState 取消注册。
Flags 参数指定正在进行的活动类型。 驱动程序可以指定标志的任意组合。
设置ES_CONTINUOUS会使忙碌状态一直持续,直到驱动程序通过调用 PoRegisterSystemState 或 PoUnregisterSystemState 显式更改或取消它。
驱动程序可以设置系统繁忙状态,以请求 电源管理器 避免在驱动程序活动发生时 (S0) 系统电源状态从系统工作状态转换。 但请注意,在某些情况下, ((例如电池电量极低) 电源管理器可能会替代此请求,并使系统进入睡眠状态。
若要设置系统电源状态,请调用 PoSetSystemState。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |