Freigeben über


Verhindern von Systemstromzustandsänderungen

Obwohl Treiber die Systemenergierichtlinie nicht direkt festlegen können, stellt der Power Manager drei Routinen bereit, mit denen ein Treiber Systemübergänge aus dem Arbeitszustand verhindern kann: PoSetSystemState, PoRegisterSystemState und PoUnregisterSystemState.

Durch Aufrufen von PoRegisterSystemState oder PoSetSystemState kann ein Treiber den Power Manager benachrichtigen, dass ein Benutzer vorhanden ist oder dass der Treiber die Verwendung des Systems oder der Anzeige benötigt.

PoRegisterSystemState ermöglicht es einem Treiber, einen kontinuierlichen Auslastungsstatus zu registrieren. Es gibt ein Handle zurück, über das der Treiber seine Einstellungen später ändern kann. Solange die Statusregistrierung wirksam ist, versucht der Power Manager nicht, das System in den Ruhezustand zu versetzen. Der Treiber bricht die Statusregistrierung ab, indem er PoUnregisterSystemState aufruft.

Bei PoSetSystemState benachrichtigt ein Treiber den Power Manager über dieselben Bedingungen (Benutzer vorhanden, System erforderlich, Anzeige erforderlich), aber diese Einstellung ist nicht kontinuierlich. Dies hat zur Folge, dass alle Leerlaufanzahlen neu gestartet werden, die den angegebenen Bedingungen zugeordnet sind.

Mit diesen Routinen kann ein Treiber viele, aber nicht alle Übergänge aus dem Arbeitszustand ausschließen. Der Power Manager fährt das System immer herunter, wenn ein Stromausfall droht oder ein Benutzer explizit das Herunterfahren anfordert.