Freigeben über


Behandeln von IRP_MN_QUERY_POWER für Systemstromzustände

Der Energie-Manager sendet einen Energie-IRP mit dem untergeordneten IRP-Code IRP_MN_QUERY_POWER und SystemPowerState in Parameters.Power.Type , um zu bestimmen, ob er sicher in einen angegebenen Systemleistungszustand (S1-S5) wechseln kann, und um treibern zu ermöglichen, sich auf eine solche Änderung vorzubereiten.

Wann immer möglich, fragt der Power Manager ab, bevor ein IRP_MN_SET_POWER gesendet wird , der einen niedrigeren (weniger stromintensiven) Zustand anfordert. Im Fall eines Akkuausfalls oder eines bevorstehenden Stromausfalls sendet der Energie-Manager jedoch die Set-Power-IRP, ohne vorher abfragen zu müssen. Der Power Manager sendet nie eine Abfrage, bevor ein IRP gesendet wird, um das System in den Arbeitszustand (S0) festzulegen.

Informationen dazu, wie ein Energierichtlinienbesitzer für ein Gerät Systemabfrage-Energieanforderungen verarbeitet, finden Sie unter Handling a System Query-Power IRP in a Device Power Policy Owner( Handling a System Query-Power IRP in a Device Power Policy Owner).

Informationen dazu, wie Treiber (die nicht der Besitzer der Energierichtlinie für ein Gerät sind) Systemabfrage-Energieanforderungen verarbeiten, finden Sie unter:

Behandeln eines System Query-Power IRP in einem Filter- oder Funktionstreiber

Fehler bei einem System Query-Power IRP in einem Filter- oder Funktionstreiber

Behandeln eines System Query-Power IRP in einem Bustreiber

Beachten Sie, dass ein Treiber niemals ein Gerät IRP_MN_SET_POWER Anforderung als Antwort auf eine Systemabfrage senden darf. Sie fordert eine solche IRP erst an, nachdem sie eine Systemsatz-Energieanforderung erhalten hat.

Da der Power Manager die Systemabfrage-IRP an jeden Gerätestapel im System sendet, ist es möglich, dass ein Treiber für ein Gerät die Abfrage fehlschlägt, während Treiber für andere Geräte sie erfolgreich abschließen. Ab Windows Vista ist eine Änderung des Systemstromzustands in einen Ruhezustand eine kritische Änderung des Energiezustands. Auch wenn bei einem Treiber ein IRP für Systemabfragen fehlschlägt, kann der Energie-Manager in Windows Vista den Systemstromzustand dennoch in einen Ruhezustand ändern. Es ist auch möglich, dass ein Akku abläuft, während eine Abfrage aktiv ist und ein sofortiges Herunterfahren erforderlich ist. Daher müssen Treiber nach einer Abfrage-IRP darauf vorbereitet sein, eines der folgenden Power IRPs zu empfangen:

  • Ein IRP_MN_SET_POWER zum abgefragten Zustand

  • Ein IRP_MN_SET_POWER zu einem anderen Machtzustand

  • Eine IRP_MN_SET_POWER zum aktuellen Energiezustand

  • Ein IRP_MN_QUERY_POWER zu einem beliebigen Zustand

In der Regel erhält ein Treiber jedoch nach einer Systemabfrage-IRP eine Systemsatz-Leistungs-IRP. Unabhängig davon muss ein Treiber bereit sein, den Systemstromzustand zu ändern, auch wenn beim Treiber ein Abfrageleistungs-IRP fehlschlägt.