Selektives Anhalten für HID-über USB-Geräte

Revision 2.0 der Universal Serial Bus Specification gibt eine USB-Funktion zum selektiven Anhalten an. Mit diesem Feature kann das Windows-Betriebssystem USB-Geräte im Leerlauf selektiv anhalten. Dadurch kann Windows die Energieanforderungen des Gesamtsystems effizient verwalten. Weitere Informationen dazu, wie Windows das Feature zum selektiven Anhalten von USB unterstützt, finden Sie unter Selektives Anhalten von USB. (Diese Ressource ist in einigen Sprachen und Ländern möglicherweise nicht verfügbar.)

Standardmäßig ist das selektive Anhalten von USB von Windows deaktiviert, um eine konsistente Benutzerfreundlichkeit zu gewährleisten und die Wartezeit durch selektives Anhalten zu vermeiden.

Ein HID-Gerät, das selektives Anhalten unterstützt, muss für Folgendes ausgelegt sein:

  • Behalten Sie den ersten Eingabe-, Touch-, Bewegungs- oder Tastendruck bei, wenn Sie das selektive Anhalten fortsetzen.
  • Reaktivieren von selektivem Anhalten bei Bewegung.
  • Verwalten Sie die drahtlose Verbindung (falls zutreffend).
  • Halten Sie die Stromversorgung aller aktiven status LEDs wie NUM-Sperre oder CAPS-Sperre aufrecht.
  • Fortsetzen vom selektiven Anhalten ohne vom Benutzer wahrgenommene Verzögerung.

Windows 8 unterstützt zwei Methoden zum Aktivieren des selektiven Anhaltens für HID-USB-Geräte. Dies sind:

  1. Microsoft OS Descriptor [PREFERRED]: Der Deskriptor für erweiterte Eigenschaften des Microsoft-Betriebssystemdeskriptors kann verwendet werden, um die erforderlichen Registrierungsschlüssel zur Unterstützung des selektiven Anhaltens von USB HID zu schreiben.
  2. Vom Hersteller bereitgestellter INF: Der Hardwarehersteller kann eine INF-Datei (die auf der USB-Hardware-ID für den HID-Entwicklungsknoten übereinstimmt) bereitstellen, um die entsprechenden Registrierungsschlüssel zu installieren.

Microsoft empfiehlt Hardwareanbietern und PC-Herstellern, die erste Option zum Aktivieren des selektiven Anhaltens von USB HID zu verwenden. Die Vorteile dieser Option sind:

  • Hardwarehersteller und PC-Hersteller müssen keine zusätzliche INF-Datei installieren.
  • Die erforderliche Registrierungseinstellung wird automatisch für neue Windows 8-Installationen aufgefüllt.
  • Die erforderliche Registrierungseinstellung wird bei einem Upgrade auf Windows 8 beibehalten.
  • Der Benutzer kann die Selektive Suspend-Funktionalität nicht verlieren (oder deaktivieren), indem er den INF deinstalliert.

Hardwarehersteller und PC-Hersteller, die weiterhin den INF-Ansatz verwenden möchten, können jedoch das folgende Beispiel verwenden. Im Folgenden finden Sie eine Beispiel-INF-Datei, die zeigt, wie Sie dieses USB-Feature für HID-Geräte in Windows aktivieren:

; Vendor INF File for USB HID devices
;
; A sample INF for a stand-alone USB HID device that supports
; selective suspend

[Version]
Signature   ="$WINDOWS NT$"
Class       =HIDClass
ClassGuid   ={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider    =%VendorName%
DriverVer   =09/19/2008,6.0.0.0
CatalogFile =VendorXYZ.cat
PnpLockdown =1

; ================= Class section =====================
[ControlFlags]
ExcludeFromSelect=*

[SourceDisksNames]
1 = %DiskName%,,,""

;*****************************************
; Install Section
;*****************************************

[Manufacturer]
%VendorName% = VendorXYZDevice,NTx86,NTamd64,NTarm

[VendorXYZDevice.NTx86]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4

[VendorXYZDevice.NTamd64]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4

[VendorXYZDevice.NTarm]
%VendorXYZ.DeviceDesc% = VendorXYZDevice_Install, USB\VID_045E&PID_00B4


[VendorXYZDevice_Install.NT]
include     = input.inf
needs       = HID_SelSus_Inst.NT

[VendorXYZDevice_Install.NT.HW]
include     = input.inf
needs       = HID_SelSus_Inst.NT.HW

[VendorXYZDevice_Install.NT.Services]
include     = input.inf
needs       = HID_SelSus_Inst.NT.Services

[Strings]
VendorName = "Vendor XYZ"
DiskName   = "Vendor XYZ Installation Disk"
VendorXYZ.DeviceDesc = "VendorXYZ Device"

Hierbei gilt:

  1. Im Abschnitt INF-Version sollten die Anweisungen CLASSGUID und DriverVer wie folgt festgelegt sein:

    • Die CLASSGUID-Direktive muss die Microsoft-Klassen-GUID für HID-Geräte angeben. Diese GUID hat den Wert {745a17a0-74d3-11d0-b6fe-00a0c90f57da}.

    • Die DriverVer-Direktive muss über einen Wert verfügen, der ein neueres Datum und eine höhere Versionsnummer als der von der DriverVer-Direktive in Input.inf angegebene Wert aufweist.

  2. In den Abschnitten VendorXYZDevice* wird der Hardwarebezeichner (ID) für das HID-Gerät des Anbieters angegeben. Die Hardware-ID besteht aus einem Anbieterbezeichner (Vendor Identifier, VID) und einem Produktbezeichner (Product Identifier, PID). Jede Hardware-ID für ein Gerät muss über VID/PID-Werte verfügen, die für den Hersteller und das Gerät eindeutig sind. Dadurch wird sichergestellt, dass dieselbe Hardware-ID nicht mehreren Namen und Einstellungen entspricht.

  3. Die Abschnitte VendorXYZDevice_Install.NT und VendorXYZDevice_Install.NT.HW sind INF DDInstall-Abschnitte. In diesem Beispiel enthalten diese Abschnitte die INF Include - und Needs-Anweisungen .

    Die Include-Direktiven verweisen auf die vom System bereitgestellte Datei Input.inf, die INF-Abschnitte enthält, die zum Aktivieren des selektiven Anhaltens von USB für das HID-Gerät des Herstellers erforderlich sind.

    Die Anweisungen "Needs" geben an, welche Abschnitte von Input.inf während der Geräteinstallation verarbeitet werden sollen. In diesem Fall wird der abschnitt HID_SelSus_Inst anstelle des Standardabschnitts HID_Inst ausgewählt, der das selektive Anhalten nicht unterstützt.

  4. Der Abschnitt VendorXYZDevice_Install.NT.Services ist ein INF DDInstall.HW-Abschnitt. In diesem Beispiel enthält der Abschnitt auch die gleichen Werte für die INF-Anweisungen Include und Needs .