Verwalten der Energierichtlinie für Geräte
Ebenso wie der Power Manager die Energierichtlinie für das System verwaltet und verwaltet, verwaltet ein Treiber im Gerätestapel für jedes Gerät die Energierichtlinie für das Gerät. Dieser Treiber ist der Besitzer der Geräteenergierichtlinie für das Gerät.
Der Besitzer der Geräteenergierichtlinie ist der Treiber, der über die meisten Informationen zur Gerätenutzung und zum Energiezustand verfügt. Es muss physisch nicht in der Lage sein, die Geräteregister so festzulegen, dass das Gerät ein- und ausgeschaltet wird, aber es muss in der Lage sein zu bestimmen, wann das Gerät verwendet wird, wann es sich im Leerlauf befindet und wann es den Energiezustand ändern soll.
In der Regel ist der Funktionstreiber für ein Gerät der Besitzer der Energierichtlinie, obwohl für einige Geräte möglicherweise ein anderer Treiber oder eine andere Systemkomponente diese Rolle übernimmt. Weitere Informationen zu den Treibertypen, die an der Energieverwaltung beteiligt sind, finden Sie unter Typen von WDM-Treibern.
Einige Treiber fungieren als Funktionstreiber für ein Gerät (erstellen eine FDO) und den Bustreiber (Erstellen einer PDO) für ein aufgezähltes untergeordnetes Gerät. In seinen Dispatch-Routinen für Stromversorgung und PnP-IRPs muss ein solcher Treiber seine Handhabung von IRPs unterscheiden, die an die FDO gesendet werden, und von denen, die an die PDO gesendet werden.
Beispielsweise kann der Treiber für einen SCSI-Adapter die Rollen des Funktionstreibers (Erstellen einer FDO) für den Adapter selbst und des Bustreibers (Erstellen einer PDO) für die an den Adapter angefügten Datenträger ausführen. Als Funktionstreiber-/Richtlinienbesitzer für den SCSI-Adapter empfängt dieser Treiber System-IRPs und fordert Geräte-IRPs für den SCSI-Adapter an. In seiner Funktion als Bustreiber für die Datenträger verarbeitet und vervollständigt er Geräte-IRPs, die die von ihm erstellten Datenträger-PDOs angeben. Nur weil der Treiber die Energierichtlinie für ein Gerät (FDO) besitzt, bedeutet dies nicht, dass er die Energierichtlinie für das untergeordnete Gerät (PDO) besitzt.
Der Besitzer der Geräteenergierichtlinie ist für Folgendes verantwortlich:
Legen Sie den anfänglichen Energiezustand des Geräts auf D0 fest, indem Sie PoSetPowerState aufrufen, während die IRP_MN_START_DEVICE-Anforderung des Plug & Play Managers verarbeitet wird.
Die Geräte sollten bei Bedarf eingeschaltet werden. Beispielsweise muss ein Gerät eingeschaltet werden, um eine E/A-Anforderung zu verarbeiten. Der Besitzer der Geräteenergierichtlinie ist dafür verantwortlich, zu bestimmen, wann das Gerät benötigt wird, sicherzustellen, dass das Gerät eingeschaltet ist, und den richtigen Gerätestromzustand festzulegen. Das typische Gerät sollte eingeschaltet sein, wenn die PnP-Startgeräte-IRP abgeschlossen ist.
In der Regel sollten die meisten Geräte ausgeschaltet werden, wenn sie nicht verwendet werden, auch wenn sich das System im Betriebszustand befindet.
Senden einer Gerätestromanforderung als Reaktion auf eine Systemstromanforderung durch Aufrufen von PoRequestPowerIrp.
Wenn der Richtlinienbesitzer z. B. eine Systemleistungs-IRP empfängt, sendet er eine IRP für die Gerätesatzleistung. Die meisten Geräte geben D3 ein, wenn das System in den Ruhezustand wechselt. Das DeviceState-Array in der DEVICE_CAPABILITIES-Struktur listet den leistungsstärksten Zustand auf, den das Gerät für jeden Systemleistungszustand beibehalten kann. (Weitere Informationen finden Sie unter Reporting Device Power Capabilities.)
Erkennt, wenn sich das Gerät im Leerlauf befindet, und versetzt es in den Energiesparmodus, um Energie zu sparen.
Entweder der Energie-Manager oder der Besitzer der Geräterichtlinie kann ein Gerät im Leerlauf erkennen und eine Geräteleistungs-IRP senden, um seinen Zustand zu ändern. Weitere Informationen finden Sie unter Erkennen eines Leerlaufgeräts.
Das Gerät wird bei Bedarf in den Arbeitszustand zurück versetzt.
Wenn eine E/A-Anforderung für ein gerät im Ruhezustand eingeht, sollten die Gerätetreiber es in den Betriebszustand zurück versetzen.
Aktivieren und Deaktivieren der Aktivierung für das Gerät bei Bedarf.
Der Besitzer der Geräteenergierichtlinie sendet und bricht IRPs für Warte-/Aktivierungsvorgänge ab, wie unter Unterstützen von Geräten mit Wake-Up Funktionen beschrieben.