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 |
目標平台 | Universal |
標頭 | ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <=APC_LEVEL |