PoRegisterSystemState 函数 (ntifs.h)
由于某些活动, PoRegisterSystemState 例程将系统注册为忙碌。
语法
PVOID PoRegisterSystemState(
[in, out] PVOID StateHandle,
[in] EXECUTION_STATE Flags
);
参数
[in, out] StateHandle
指向注册状态句柄的调用方提供的缓冲区的指针。 缓冲区的大小(以字节为单位)为 sizeof(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 |
目标平台 | 通用 |
标头 | ntifs.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |