Besitz von Power Policy in UMDF

Warnung

UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden.

Die archivierten UMDF 1-Beispiele finden Sie im Windows 11, Version 22H2 – Mai 2022 Treiberbeispiele Update.

Weitere Informationen finden Sie unter "Erste Schritte mit UMDF".

Für jedes Gerät muss eine (und nur eine) der Gerätetreiber der Energierichtlinienbesitzer des Geräts sein. Der Besitzer der Energierichtlinie bestimmt den entsprechenden Gerätestromzustand für ein Gerät und sendet Anforderungen an den Treiberstapel des Geräts, wenn sich der Energiezustand des Geräts ändern sollte.

Frameworkbasierte Treiber enthalten keinen Code, der Änderungen im Energiezustand eines Geräts anfordert, da das Framework diesen Code bereitstellt. Wenn das System in einen Ruhezustand des Systems wechselt, fordert das Framework den Treiber auf, den Bus Ihres Geräts zu bitten, den Gerätestromzustand auf D3 zu senken. (Ihr Treiber kann das Standardverhalten ändern, sodass das Framework den Standbyzustand Ihres Geräts auf D1 oder D2 festlegt, wenn das Gerät Wake-up-Funktionen bereitstellt.) Wenn die Systemleistung in den Arbeitszustand (S0) zurückkehrt, fordert das Framework den Bustreiber auf, Ihr Gerät in den Arbeitszustand (D0) wiederherzustellen.

Der Besitzer der Energierichtlinie ist auch für das Aktivieren und Deaktivieren der folgenden Gerätefeatures verantwortlich:

  • Die Fähigkeit Ihres Geräts, einen Energiesparzustand (Ruhezustand) einzugeben, wenn es sich im Leerlauf befindet und das System im Arbeitszustand (S0) bleibt.

  • Die Fähigkeit Ihres Geräts, sich aus einem Ruhezustand zu reaktivieren, wenn es ein externes Ereignis erkennt

  • Die Fähigkeit Ihres Geräts, das gesamte System aus einem Ruhezustand des Systems aufzuwachen, wenn es ein externes Ereignis erkennt

Wenn Ihr Gerät diese Leerlauf- und System-Wake-Up-Funktionen unterstützt, kann der Besitzer der Energierichtlinie auch die IPowerPolicyCallbackWakeFromS0- und IPowerPolicyCallbackWakeFromSx-Schnittstellen des Frameworks unterstützen, die eine Reihe von Power Policy-Ereignisrückruffunktionen definieren.

UMDF-basierte Treiber sind standardmäßig keine Besitzer von Energierichtlinien. Der Kernelmodus-Funktionstreiber des Geräts ist der Standardbesitzer der Energierichtlinie. (Wenn kein Kernelmodus-Funktionstreiber vorhanden ist und der Bustreiber aufgerufen wurdeWdfPdoInitAssignRawDevice, der Bustreiber ist der Besitzer der Energierichtlinie). Wenn Ihr UMDF-basierter Treiber der Besitzer der Energierichtlinie für einen Treiberstapel sein soll, muss der Treiber IWDFDeviceInitialize::SetPowerPolicyOwnership aufrufen, und der Besitzer der Standard-Energierichtlinie im Kernelmodus muss WdfDeviceInitSetPowerPolicyOwnership aufrufen, um den Besitz zu deaktivieren.

Wenn Sie außerdem einen UMDF-basierten Treiber für ein USB-Gerät bereitstellen und ihr Treiber der Besitzer der Energierichtlinie sein soll, muss die INF-Datei des Treibers eine INF-AddReg-Direktive enthalten, die den WinUsbPowerPolicyOwnershipDisabled-Wert in der Registrierung festlegt. Wenn dieser wert der größe REG_DWORD auf eine beliebige Nichtzeronummer festgelegt ist, wird die Fähigkeit des WinUSB-Treibers deaktiviert, der Besitzer der Energierichtlinie des Geräts zu sein. Die AddReg-Direktive muss sich in einem INF DDInstall.HW-Abschnitt befinden, wie im folgenden Beispiel gezeigt.

[MyDriver_Install.NT.hw]
AddReg=MyDriver_AddReg

[MyDriver_AddReg]
HKR,,"WinUsbPowerPolicyOwnershipDisabled",0x00010001,1

Das Framework führt die folgenden Aufgaben für den Besitzer der Energierichtlinie aus:

  • Es behandelt die gesamte Energierichtlinienkommunikation zwischen Ihrem Treiber und dem rest des Treiberstapels. Ihr Treiber muss z. B. nicht den Bustreiber anfordern, um den Energiezustand des Geräts zu ändern, da das Framework die Anforderung vornimmt.

  • Wenn Ihr Treiber Power Policy-Ereignisrückruffunktionen registriert, ruft das Framework sie auf, wenn es an der Zeit ist, die Fähigkeit des Geräts zu aktivieren oder zu deaktivieren, sich aus einem Energiesparzustand zu reaktivieren.

  • Wenn Ihr Treiber Benutzern das Ändern von Leerlauf- und Wake-Einstellungen ermöglicht, stellt das Framework eine Benutzeroberfläche in Form einer Eigenschaftenblattseite bereit, die Geräte-Manager angezeigt wird.

Weitere Informationen zu den Zuständigkeiten des Besitzers der Energierichtlinie finden Sie in den folgenden Themen: