Freigeben über


Remoteaktivierung von USB-Geräten

USB-Geräte, die auf externe Aktivierungssignale reagieren können, während sie angehalten sind, verfügen über eine Remotereaktivierungsfunktion . Beispiele für Geräte, die über eine Remote-Aktivierungsfunktion verfügen, sind Mäuse, Tastaturen, USB-Hubs, Modems (Wake on Ring), NICs, Wake-on-Kabeleinfügung. Alle diese Geräte sind in der Lage, Remote Wake Signaling zu erzeugen. Zu den Geräten, die nicht in der Lage sind, Remote wake signaling zu generieren, gehören Videokameras, Massenspeichergeräte, Audiogeräte und Drucker.

Treiber für Geräte, die Remote-Aktivierungssignalisierung unterstützen, müssen ein IRP_MN_WAIT_WAKE IRP ausstellen, das auch als Warteaktivierungs-IRP bezeichnet wird, um das Gerät für die Remotereaktivierung zu rüsten. Der Warteaktivierungsmechanismus wird im Abschnitt Unterstützen von Geräten beschrieben, die über Wake-Up Funktionen verfügen.

Remotereaktivierung auf einem USB-Blattgerät

In der USB-Terminologie ist ein USB-Gerät für die Remotereaktivierung aktiviert, wenn seine DEVICE_REMOTE_WAKEUP-Funktion festgelegt ist. Die USB-Spezifikation gibt an, dass die Hostsoftware die Remotereaktivierungsfunktion auf einem Gerät "nur kurz vor" festlegen muss, um das Gerät in den Standbymodus zu versetzen.

Aus diesem Grund legt der USB-Stapel die DEVICE_REMOTE_WAKEUP-Funktion auf einem Gerät nicht fest, nachdem eine Wartereaktivierungs-IRP für das Gerät empfangen wurde. Stattdessen wird gewartet, bis eine IRP_MN_SET_POWER Anforderung empfangen wird, um den WDM-Gerätestatus des Geräts in D1/D2 zu ändern. Wenn der USB-Stapel diese Anforderung empfängt, wird in den meisten Fällen die Remotereaktivierungsfunktion auf dem Gerät festgelegt und das Gerät in den Standbymodus versetzt, indem der Upstream Port des Geräts angehalten wird. Wenn Sie Ihren Treiber entwerfen und debuggen, sollten Sie bedenken, dass es eine lose Beziehung zwischen der Armierung eines USB-Geräts für das Reaktivieren in Software durch eine Wartereaktivierungs-IRP und der Armierung des Geräts für das Reaktivieren in der Hardware besteht, indem Sie die Remote-Aktivierungsfunktion einrichten.

Der USB-Stapel aktiviert das Gerät nicht für die Remotereaktivierung, wenn es eine Anforderung erhält, das Gerät in einen Standbyzustand von D3 zu ändern, da geräte in D3 gemäß dem WDM-Energiemodell das System nicht reaktivieren können.

Aktivierungsverhalten beim An- oder Trennen eines USB-Geräts

Ein weiterer einzigartiger Aspekt der USB-Implementierung des WDM-Energiemodus betrifft die Armierung von USB-Hubs für die Remote-Aktivierung. Wenn ein USB-Blattgerät auf dem Bus für das Reaktivieren ausgerüstet ist, wird der USB-Hostcontroller auch vom USB-Hostcontroller für die Aktivierung armiert, aber nicht unbedingt einer der USB-Hubs Upstream des Geräts. Der USB-Hubtreiber unterstützt einen Hub nur dann für die Remotereaktivierung, wenn der USB-Stapel so konfiguriert ist, dass das System bei An- und Abtrennereignissen reaktiviert wird (Ein-/Abstecken).

USB-Hostcontroller der Universal Host Controller Interface (UHCI) unterscheiden nicht zwischen Remoteaktivierungssignalen und Verbindungsänderungsereignissen an Root Hub-Ports. Dies bedeutet, dass das System immer aus einem niedrigen Systemleistungszustand reaktiviert wird, wenn ein USB-Gerät mit einem Root Hub-Port verbunden oder von diesem getrennt wird, wenn sich mindestens ein Gerät hinter dem UHCI-Controller befindet, das für die Aktivierung bereit ist.