WinUSB Energieverwaltung
WinUSB verwendet die KMDF-Zustandscomputer für die Energieverwaltung. Power policies are managed through calls to WinUsb_SetPowerPolicy.
Um das Leistungsverhalten von WinUSB zu ändern, können standardregistrierungseinstellungen im INF des Geräts geändert werden. Diese Werte müssen in den gerätespezifischen Speicherort in der Registrierung geschrieben werden, indem die Werte im HW hinzugefügt werden. AddReg-Abschnitt des INF.
Die in der folgenden Liste beschriebenen Registrierungswerte können im INF des Geräts angegeben werden, um das Leistungsverhalten zu ändern.
System Wake
Dieses Feature wird von der SystemWakeEnabled-DWORD-Registrierungseinstellung gesteuert. Dieser Wert gibt an, ob das Gerät das System aus einem Energiesparzustand reaktivieren darf.
HKR,,SystemWakeEnabled,0x00010001,1
- Ein Wert von Null oder das Fehlen dieses Werts gibt an, dass das Gerät das System nicht reaktivieren darf.
- Damit ein Gerät das System reaktivieren kann, legen Sie "SystemWakeEnabled " auf einen Wert ungleich Null fest. Ein Kontrollkästchen auf der Seite "Geräteeigenschaften" wird automatisch aktiviert, sodass der Benutzer die Einstellung außer Kraft setzen kann.
Hinweis
Das Ändern der Einstellung "SystemWakeEnabled " hat keine Auswirkung auf das selektive Anhalten, dieser Registrierungswert bezieht sich nur auf das Anhalten des Systems.
Selektives Anhalten
Das selektive Anhalten kann von mehreren System- oder WinUSB-Einstellungen deaktiviert werden. Eine einzelne Einstellung kann WinUSB nicht erzwingen, das selektive Anhalten zu aktivieren.
Die folgenden Energierichtlinieneinstellungen, die im PolicyType-Parameter WinUsb_SetPowerPolicy angegeben sind, wirken sich auf das Verhalten des selektiven Anhaltens aus:
- AUTO_SUSPEND Bei Festlegung auf Null wird das Gerät nicht auf den selektiven Anhaltemodus festgelegt.
- SUSPEND_DELAY Legt die Zeit zwischen dem Zeitpunkt fest, zwischen dem das Gerät im Leerlauf ist, und wenn WinUSB anfordert, dass das Gerät selektiv angehalten wird.
Die folgende Tabelle zeigt, wie sich die Registrierungsschlüssel auf das selektive Anhaltefeature auswirken.
Registrierungsschlüssel | Beschreibung |
---|---|
DeviceIdleEnabled | Dies ist ein DWORD-Wert. Dieser Registrierungswert gibt an, ob das Gerät beim Leerlauf (selektives Anhalten) heruntergefahren werden kann.
HKR,,DeviceIdleEnabled,0x00010001,1 |
DeviceIdleIgnoreWakeEnable | Wenn dieser Wert auf einen Wert ungleich Null festgelegt ist, wird das Gerät angehalten, auch wenn remoteWake nicht unterstützt wird. |
UserSetDeviceIdleEnabled | Dieser Wert ist ein DWORD-Wert. Dieser Registrierungswert gibt an, ob auf der Seite "Geräteeigenschaften" ein Kontrollkästchen aktiviert werden soll, mit dem ein Benutzer die Standardeinstellungen im Leerlauf außer Kraft setzen kann. Wenn UserSetDeviceIdleEnabled auf einen Nichtzero-Wert festgelegt ist, ist das Kontrollkästchen aktiviert, und der Benutzer kann das Einschalten des Geräts beim Leerlauf deaktivieren. Ein Wert von Null oder das Fehlen dieses Werts gibt an, dass das Kontrollkästchen nicht aktiviert ist.
Die UserSetDeviceIdleEnabled wird ignoriert, wenn DeviceIdleEnabled nicht festgelegt ist. HKR,,UserSetDeviceIdleEnabled,0x00010001,1 |
DefaultIdleState | Dies ist ein DWORD-Wert. Dieser Registrierungswert legt den Standardwert der AUTO_SUSPEND Energierichtlinieneinstellung fest. Dieser Registrierungsschlüssel wird verwendet, um das selektive Anhalten zu aktivieren oder zu deaktivieren, wenn ein Handle nicht auf dem Gerät geöffnet ist.
Dieser Wert wird ignoriert, wenn DeviceIdleEnabled nicht festgelegt ist. HKR,,DefaultIdleState,0x00010001,1 |
DefaultIdleTimeout | Dies ist ein DWORD-Wert. Dieser Registrierungswert legt den Standardstatus der SUSPEND_DELAY Energierichtlinieneinstellung fest. Der Wert gibt die Zeit in Millisekunden an, die gewartet werden soll, bevor festgestellt wird, dass ein Gerät im Leerlauf ist. HKR,,DefaultIdleTimeout,0x00010001,100 |
Erkennen des Leerlaufs
Alle Schreib- und Steuerungsübertragungen erzwingen das Gerät in den D0-Energiezustand und setzen den Leerlaufzeitgeber zurück. Die IN-Endpunktwarteschlangen werden nicht mit verwaltetem Strom verwaltet. Leseanforderungen reaktivieren das Gerät, wenn es übermittelt wird. Ein Gerät kann jedoch im Leerlauf sein, während eine Leseanforderung wartet.
Zugehörige Themen
- WinUSB-Architektur und -Module
- Auswahl eines Treibermodells für die Entwicklung eines USB-Client-Treibers
- WinUSB (Winusb.sys) Installation
- Zugriff auf ein USB-Gerät mit Hilfe der WinUSB-Funktionen
- WinUSB-Funktionen für die Pipe-Policy-Modifikation
- WinUSB-Funktionen
- Einführung in WinUSB für Entwickler
- WinUsb_GetPowerPolicy
- WinUsb_SetPowerPolicy