Benutzersteuerung des Geräte-Leerlauf- und Reaktivverhaltens 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. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. 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.

Wenn ein Gerät über Funktionen zum Herunter- oder Aufwecken im Leerlauf verfügt, können Sie entscheiden, ob Benutzer diese Funktionen aktivieren oder deaktivieren dürfen.

Ihr UMDF-basierter Treiber kann die IWDFDevice2::AssignS0IdleSettings-Methode verwenden, um anzugeben, ob Benutzer mit Registrierungszugriff die Funktion zum Herunterfahren im Leerlauf eines Geräts aktivieren oder deaktivieren können.

Ihr Treiber kann die IWDFDevice2::AssignSxWakeSettings-Methode verwenden, um anzugeben, ob Benutzer mit Registrierungszugriff die Aktivierungsfunktion eines Geräts aktivieren oder deaktivieren können.

Beide Methoden ermöglichen es dem Treiber, die Funktion zu aktivieren, die Funktion zu deaktivieren oder Benutzern die Kontrolle über die Funktion zu geben:

  • Wenn ein Treiber die AssignS0IdleSettings-Methode aufruft , kann er Benutzern die Kontrolle über die Leerlauffunktionen eines Geräts geben, indem er den Parameter UserControlOfIdleSettings auf IdleAllowUserControl festlegt und den Enabled-Parameter auf WdfTrue oder WdfUseDefault festlegt.

  • Wenn ein Treiber die AssignSxWakeSettings-Methode aufruft , kann er Benutzern die Kontrolle über die Aktivierungsfunktionen eines Geräts geben, indem er den UserControlOfWakeSettings-Parameter auf WakeAllowUserControl festlegt und den Enabled-Parameter auf WdfTrue oder WdfUseDefault festlegt.

Wenn Ihr Treiber Benutzern das Ändern von Leerlauf- und Aktivierungseinstellungen ermöglicht, stellt das Framework eine Benutzeroberfläche in Form einer Eigenschaftenblattseite bereit, die Geräte-Manager angezeigt wird, sodass Benutzer die Leerlauf- und Aktivierungsfunktionen aktivieren oder deaktivieren können. (Das Framework ändert die Registrierungswerte IdleInWorkingState und WakeFromSleepState . Treiber und ihre Installationsdateien dürfen diese Werte nicht lesen oder ändern.)

Wenn ein Benutzer die Einstellungen eines Geräts ändert, aktualisiert das Framework den Energiezustand des Geräts, um bei Bedarf den neuen Einstellungen zu entsprechen. Wenn der Benutzer beispielsweise die Leerlauffunktion eines Geräts deaktiviert, während sich das Gerät bereits in einem Energiesparzustand befindet, weil es sich im Leerlauf befand, kehrt das Framework das Gerät in seinen Betriebszustand zurück.

Wenn Ihr Treiber Benutzern das Ändern von Leerlauf- und Aktivierungseinstellungen zulässt, aktiviert das Framework diese Einstellungen standardmäßig. Einige Treiberautoren möchten die Einstellungen möglicherweise zunächst deaktivieren, bevor Benutzer sie ändern können.

Daher stellen die Versionen 1.9 und höher des Frameworks zwei treiberdefinierbare Registrierungswerte bereit: WdfDefaultIdleInWorkingState und WdfDefaultWakeFromSleepState, die im Unterschlüssel Geräteparameter\WDF des Geräts unter dem Hardwareschlüssel des Geräts gespeichert werden. Die Werte sind REG_DWORD typisiert, wobei "0" angibt, dass die Funktion deaktiviert ist, und "1", das angibt, dass die Funktion aktiviert ist.

Die INF-Datei Ihres Treibers kann eine INF AddReg-Direktive verwenden, um die Registrierungswerte WdfDefaultIdleInWorkingState und WdfDefaultWakeFromSleepState zu erstellen und festzulegen. Wenn Ihr Treiber beispielsweise die Leerlauffunktion eines Geräts aktiviert, die Funktion jedoch bei der Installation des Geräts deaktiviert werden muss, kann die INF-Datei des Treibers WdfDefaultIdleInWorkingState auf "0" festlegen.

Das Framework untersucht den WdfDefaultIdleInWorkingState-Registrierungswert nur, wenn der Treiber den Parameter UserControlOfIdleSettings auf IdleAllowUserControl und den Enabled-Parameter auf WdfTrue oder WdfUseDefault festlegt, wenn der Treiber die IWDFDevice2::AssignS0IdleSettings-Methode aufruft .

Das Framework untersucht die WdfDefaultWakeFromSleepState-Registrierungswerte nur, wenn der Treiber den Parameter UserControlOfWakeSettings auf IWakeAllowUserControl und den Enabled-Parameter auf WdfTrue oder WdfUseDefault festlegt, wenn der Treiber die IWDFDevice2::AssignSxWakeSettings-Methode aufruft .