Freigeben über


Plug & Play-Unterstützung

In diesem Artikel wird der Enumerationsprozess für den universellen seriellen Bus beschrieben.

Wenn ein Gerät an einen Windows-basierten Computer angeschlossen ist, listet der Windows-USB-Stapel das Gerät auf, extrahiert Details vom Gerät, einschließlich der Schnittstellendeskriptoren (oder Deskriptoren) des Geräts, und generiert dann eine Reihe von Hardware-IDs und kompatibleN IDs für das Gerät.

Eine vollständige Liste der USB-Hardware-IDs finden Sie im Abschnitt "Geräteidentifikationszeichenfolgen" unter "Geräteinstallation".

Die Beispiele in den folgenden Abschnitten veranschaulichen zwei Szenarien:

  • USB-IDs für ein einzelnes Schnittstellen-USB-Gerät
  • USB-IDs für ein Usb-Gerät mit mehreren Schnittstellen (Composite)

Beispiel 1: HID-USB-Gerät mit einer einzigen Schnittstelle

In diesem Beispiel wird gezeigt, wie die Hardware-IDs und kompatiblen IDs für ein USB-Gerät mit einer Schnittstelle auf einem System unter Windows 2000 oder Windows XP generiert werden.

Wenn das Gerät ursprünglich vom USB-Stapel aufgezählt wird, extrahiert der USBHUB-Treiber idVendor, idProduct und bcdDevice aus dem Gerätedeskriptor. Diese drei Felder werden integriert, um eine USB-Hardware-ID zu generieren. Beachten Sie, dass die Anbieter-, Geräte- und Revisionsnummern immer im Hexadezimalformat gespeichert werden.

Die Generierung der kompatiblen ID für das Gerät ist komplizierter. Der Klassencode, Unterklassencode und Protokollcode werden durch die bInterfaceClass, bInterfaceSubClass und bInterfaceProtocol des Schnittstellendeskriptors bestimmt. Diese Werte befinden sich im zweistelligen Hexadezimalformat.

Hinweis : Wenn Sie eine INF angeben, sollten Ihre Hardware-IDs den fett formatierten Bezeichnern in der linken Spalte der folgenden Tabelle entsprechen. (Sie sollten vermeiden, die in der rechten Spalte aufgeführten kompatiblen Bezeichner zu verwenden.)

Hardwarebezeichner: Kompatible Bezeichner

USB\Vid_xxxx&Pid_yyyy&Rev_zzzz: USB\Class_aa&SubClass_bb&Prot_cc

USB\Vid_xxxx&Pid_yyyy: USB\Class_aa&SubClass_bb

: USB\Class_aa

Beispiel 2: Multiple Interface/Function HID USB Device (Composite Device)

USB-Geräte mit mehreren Funktionen werden als zusammengesetzte Geräte bezeichnet. Dieses Beispiel zeigt, wie die Hardware-IDs und kompatiblen IDs für Verbund-USB-Geräte unter Windows generiert werden. Wenn ein neues USB-Verbundgerät an ein Computersystem angeschlossen ist, auf dem Windows ausgeführt wird, erstellt der USBHUB-Treiber ein physisches Geräteobjekt (PDO) und benachrichtigt das Betriebssystem, dass sich seine Gruppe untergeordneter Geräte geändert hat. Nach der Abfrage des Hubtreibers nach den Hardware-IDs, die dem neuen PDO zugeordnet sind, durchsucht das System die entsprechenden INF-Dateien, um eine Übereinstimmung für die Bezeichner zu finden. Wenn sich ein Anbieter entscheidet, nur einen Treiber für das gesamte Gerät zu laden (d. a. nicht den zusammengesetzten Gerätetreiber) und alle Schnittstellen in Software mit diesem Treiber, sollte der Hersteller eine Hardware-ID-Übereinstimmung angeben, um zu verhindern, dass das Betriebssystem die übereinstimmung mit der niedrigeren Rangfolge (USB\COMPOSITE) erhält.

Hinweis : Wenn Sie eine INF angeben, sollten Ihre Hardware-IDs den fett formatierten Bezeichnern in der linken Spalte der folgenden Tabelle entsprechen. (Sie sollten vermeiden, die in der rechten Spalte aufgeführten kompatiblen Bezeichner zu verwenden.)

Hardwarebezeichner: Kompatible Bezeichner

USB\Vid_xxxx&Pid_yyyy&Rev_zzzz: USB\Class_aa&SubClass_bb&Prot_cc

USB\Vid_xxxx&Pid_yyyy: USB\Class_aa&SubClass_bb

: USB\Class_aa

: USB\COMPOSITE

Wenn jedoch keine Hardware-Übereinstimmung gefunden wird, verwendet Windows Plug & Play den USB\COMPOSITE-Bezeichner, um den generischen USB-Treiber (USBCCGP) zu laden. Der generische übergeordnete Treiber erstellt dann einen separaten Satz von PDOs (eine für jede Schnittstelle) mit einem separaten Satz von Hardware-IDs für jede Schnittstelle des zusammengesetzten Geräts. Im folgenden Abschnitt wird das Format der Hardware-IDs für untergeordnete PDOs angezeigt.

Um den Satz von Hardware-IDs für die PDO jeder Schnittstelle zu erstellen, fügt der USBCCGP-Treiber die Schnittstellennummer (ein nullbasierter Hexadezimalwert) an das Ende der Hardware-ID an.

Der Klassencode, Unterklassencode und Protokollcode werden durch die Felder bInterfaceClass, bInterfaceSubClass und bInterfaceProtocol des Schnittstellendeskriptors bestimmt. Diese Werte befinden sich im zweistelligen Hexadezimalformat.

Hinweis : Wenn Sie einen INF angeben, um ihren Treiber zu laden oder einen Anzeigegerätenamen bereitzustellen, sollten Ihre Hardware-IDs den fett formatierten Bezeichnern in der linken Spalte der folgenden Tabelle entsprechen. (Sie sollten vermeiden, die in der rechten Spalte aufgeführten kompatiblen Bezeichner zu verwenden.)

Hardwarebezeichner: Kompatible Bezeichner

USB\Vid_xxxx&Pid_yyyy&Rev_zzzz&MI_ww: USB\Class_aa&SubClass_bb&Prot_cc

USB\Vid_xxxx&Pid_yyyy&MI_ww: USB\Class_aa&SubClass_bb

: USB\Class_aa