Freigeben über


Ermitteln des richtigen Geräteleistungszustands

Der Besitzer der Energierichtlinie überprüft das DeviceState-Array in der DEVICE_CAPABILITIES-Struktur , um den gültigen Bereich der Geräteleistungszustände für jeden Systemenergiezustand zu bestimmen. Das Array listet den höchsten Geräteleistungsstatus auf, den das zugrunde liegende Gerät für jeden Systemleistungszustand unterstützen kann.

Wenn Sie einen bestimmten Zustand aus diesem Bereich auswählen, sollten Sie Folgendes berücksichtigen:

  • Die meisten Geräte gelangen in den D0-Zustand, wenn das System in den S0-Zustand wechselt.

  • Die meisten Geräte werden in den D3-Zustand versetzt, wenn das System in den Ruhezustand wechselt. Ein Gerät, das für die Aktivierung aktiviert ist, muss möglicherweise stattdessen D1 oder D2 eingeben, wenn es solche Zustände unterstützt. Weitere Informationen finden Sie unter Reporting Device Power Capabilities( Reporting Device Power Capabilities).

  • Für das Gerät, das die Ruhezustandsdatei enthält, gelten besondere Regeln. Wenn die System-IRP PowerSystemHibernate anfordert, darf das Gerät, das die Ruhezustandsdatei enthält, nicht ausgeschaltet werden. Der Besitzer der Energierichtlinie für ein solches Gerät sollte den Gerätestromzustand D3 anfordern und den Kontext speichern, aber die Gerätetreiber dürfen das Gerät nicht ausschalten.

Wenn das System-IRP PowerSystemShutdown anfordert, sollte der Treiber den POWER_ACTION Wert unter Irp-Parameters.Power.ShutdownType> überprüfen, um den Grund für die Zustandsänderung zu ermitteln. Weitere Informationen finden Sie unter System Power Actions.

Der Besitzer der Geräteenergierichtlinie muss für jede IRP des Systemsatz-Leistungs-IRP eine Gerätesatz-Leistungs-IRP senden, auch wenn sich das Gerät bereits im richtigen Gerätestromzustand befindet. Wenn der Treiber zuvor Gerätevorgänge als Reaktion auf eine Abfrageleistungs-IRP angehalten hat, benachrichtigt ihn das Set-Power-IRP, die Warteschlange von IRPs zu beenden und für den aktuellen Energiezustand zum normalen Betrieb zurückzukehren. Die einzige Ausnahme tritt auf, wenn sich das Gerät im D3-Zustand befindet. In diesem Fall muss der Treiber keine zusätzliche IRP_MN_SET_POWER Anforderung für D3 senden.