Standard-USB-IDs
Der Satz von Bezeichnern, die für USB-Geräte generiert werden, hängt davon ab, ob es sich bei dem Gerät um ein Einzelschnittstellengerät oder um ein Mehrschnittstellengerät handelt.
Usb-Geräte mit einer Schnittstelle
Wenn ein neues USB-Gerät angeschlossen ist, erstellt der vom System bereitgestellte USB-Hubtreiber die folgende Geräte-ID mithilfe von Informationen, die aus der Gerätedeskriptor extrahiert wurden:
USB\VID_v(4)&PID_d(4)&REV_r(4)
Hierbei gilt:
- v(4) ist der Anbietercode, den der USB-Ausschuss dem Anbieter zuweist.
- d(4) ist der Produktcode, den der Hersteller dem Gerät zuweist.
- r(4) ist der Revisionscode.
Der Hubtreiber extrahiert die Anbieter- und Produktcodes aus den Feldern idVendor, idProduct und bcdDevice des Gerätedeskriptors. Diese Codes sind vierstellige Hexadezimalzahlen.
Ein INF-Modellabschnitt kann auch die folgende Hardware-ID angeben:
USB\VID_v(4)&PID_d(4)
Und die folgenden kompatiblen IDs:
USB\CLASS_c(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_c(2)&SUBCLASS_s(2)
USB\CLASS_c(2)
Hierbei gilt:
- c(2) ist der Geräteklassencode aus dem Gerätedeskriptor.
- s(2) ist der Geräteunterklassencode.
- p(2) ist der Protokollcode.
Die Felder "bDeviceClass", "bDeviceSubClass" und "bDeviceProtocol " des Gerätedeskriptors bestimmen den Geräteklassencode, den Unterklassencode bzw. den Protokollcode. Diese Codes sind zweistellige hexadezimale Zahlen.
Usb-Geräte mit mehreren Schnittstellen
Geräte mit mehreren Schnittstellen werden als zusammengesetzte Geräte bezeichnet. Wenn ein neues USB-Verbundgerät an einen Windows-Computer angeschlossen ist, erstellt der USB-Hubtreiber ein physisches Geräteobjekt (PDO) und benachrichtigt das Betriebssystem, die Liste der untergeordneten Geräte zu aktualisieren. Nachdem windows den Hubtreiber nach den Hardwarebezeichnern abfragt, die dem neuen PDO zugeordnet sind, durchsucht es die entsprechenden INF-Dateien, um eine Übereinstimmung für die Bezeichner zu finden. Wenn eine andere Übereinstimmung als USB\COMPOSITE gefunden wird, wird der in der INF-Datei angegebene Treiber geladen. Wenn jedoch keine andere Übereinstimmung gefunden wird, verwendet das Betriebssystem die kompatible ID USB\COMPOSITE, für die er den generischen USB-Treiber lädt. Der generische übergeordnete Treiber erstellt dann einen separaten PDO und generiert einen separaten Satz von Hardwarebezeichnern für jede Schnittstelle des zusammengesetzten Geräts.
Jede Schnittstelle verfügt über eine Geräte-ID des folgenden Formulars:
USB\VID_v(4)&PID_d(4)&MI_z(2)
Hierbei gilt:
- v(4) ist der Anbietercode, den der USB-Ausschuss dem Anbieter zuweist.
- d(4) ist der Produktcode, den der Hersteller dem Gerät zuweist.
- z(2) ist die Schnittstellennummer, die aus dem bInterfaceNumber-Feld des entsprechenden Schnittstellendeskriptors extrahiert wird.
Ein INF-Modellabschnitt kann auch die folgenden kompatiblen IDs angeben:
USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_d(2)&SUBCLASS_s(2)
USB\CLASS_d(2)
USB\COMPOSITE
Hierbei gilt:
- d(2) ist der Geräteklassencode des Gerätedeskriptors.
- s(2) ist der Unterklassencode.
- p(2) ist der Protokollcode.
Die Felder "bInterfaceClass", "bInterfaceSubClass" und "bInterfaceProtocol " des Schnittstellendeskriptors bestimmen den Geräteklassencode, den Unterklassencode bzw. den Protokollcode. Diese Codes sind zweistellige hexadezimale Zahlen.