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.
  • Ein Wert von Null oder das Fehlen dieses Werts gibt an, dass das Gerät beim Leerlauf nicht unterstützt wird.
  • Ein Wert ungleich Null gibt an, dass das Gerät beim Leerlauf unterstützt wird.
  • Wenn DeviceIdleEnabled nicht festgelegt ist, wird der Wert der AUTO_SUSPEND Energierichtlinieneinstellung ignoriert.

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.
  • Wenn der Benutzer die Energieeinsparungen des Geräts deaktiviert, wird der Wert der AUTO_SUSPEND Energierichtlinieneinstellung ignoriert.
  • Wenn der Benutzer gerätestromsparend aktiviert, wird der Wert von AUTO_SUSPEND verwendet, um zu bestimmen, ob das Gerät beim Leerlauf angehalten werden soll.

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.
  • Ein Wert von Null oder das Fehlen dieses Werts gibt an, dass das Gerät standardmäßig nicht im Leerlauf angehalten wird. Das Gerät darf im Leerlauf nur angehalten werden, wenn die AUTO_SUSPEND Energierichtlinie aktiviert ist.
  • Ein Wert ungleich Null gibt an, dass das Gerät standardmäßig beim Leerlauf angehalten werden kann.

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.