防止系統電源狀態變更

雖然驅動程式無法直接設定系統電源原則,但電源管理員會提供三個常式,讓驅動程式無法從工作狀態轉換: PoSetSystemStatePoRegisterSystemStatePoUnregisterSystemState

藉由呼叫 PoRegisterSystemStatePoSetSystemState,驅動程式可以通知電源管理員使用者存在,或驅動程式需要使用系統或顯示器。

PoRegisterSystemState 可讓驅動程式註冊連續忙碌狀態。 它會傳回控制碼,讓驅動程式稍後可以變更其設定。 只要狀態註冊生效,電源管理員就不會嘗試讓系統進入睡眠狀態。 驅動程式會呼叫 PoUnregisterSystemState來取消狀態註冊。

使用 PoSetSystemState時,驅動程式會通知電源管理員 (使用者存在、系統必要、顯示必要的) ,但此設定不連續。 其效果是重新開機與指定條件相關聯的任何閒置倒數。

使用這些常式時,驅動程式可能會讓許多但並非全部移出工作狀態。 當電源遺失或使用者明確要求關機時,電源管理員一律會關閉系統。