Identificatori USB standard

Il set di identificatori generati per i dispositivi USB dipende dal fatto che il dispositivo sia un dispositivo a interfaccia singola o un dispositivo a più interfacce.

dispositivi USB Single-Interface

Quando un nuovo dispositivo USB è collegato, il driver dell'hub USB fornito dal sistema compone l'ID dispositivo seguente usando le informazioni estratte dal descrittore del dispositivo del dispositivo:

USB\VID_v(4)&PID_d(4)&REV_r(4)

Dove:

Il driver hub estrae rispettivamente il fornitore e i codici di prodotto dai campi idVendor, idProduct e bcdDevice del descrittore di dispositivo. Si tratta di numeri esadecimali a 4 cifre.

Una sezione del modello INF può anche specificare l'ID hardware seguente:

USB\VID_v(4)&PID_d(4)

e gli ID compatibili seguenti:

USB\CLASS_c(2)&SUBCLASS_s(2)&PROT_p(2)

USB\CLASS_c(2)&SUBCLASS_s(2)

USB\CLASS_c(2)

Dove:

  • c(2) è il codice della classe del dispositivo tratto dal descrittore del dispositivo.

  • s(2) è il codice della sottoclasse del dispositivo.

  • p(2) è il codice del protocollo.

Il codice della classe del dispositivo, il codice della sottoclasse e il codice del protocollo sono determinati rispettivamente dai campi bDeviceClass, bDeviceSubClass e bDeviceProtocol del descrittore del dispositivo. Si tratta di numeri esadecimali a 2 cifre.

dispositivi USB Multiple-Interface

I dispositivi con più interfacce sono denominati dispositivi compositi . A partire da Windows 2000, quando un nuovo dispositivo composito USB viene collegato a un computer, il driver dell'hub USB crea un oggetto dispositivo fisico (PDO) e notifica al sistema operativo che il set di dispositivi figlio è cambiato. Dopo aver eseguito una query sul driver hub per individuare gli identificatori hardware associati al nuovo PDO, il sistema operativo cerca i file INF appropriati per trovare una corrispondenza per gli identificatori. Se trova una corrispondenza diversa da USB\COMPOSITE, carica il driver indicato nel file INF. Tuttavia, se non viene trovata alcuna altra corrispondenza, il sistema operativo usa l'ID compatibile USB\COMPOSITE, per il quale carica il driver padre generico USB. Il driver padre generico crea quindi un PDO separato e genera un set separato di identificatori hardware per ogni interfaccia del dispositivo composito.

Ogni interfaccia ha un ID dispositivo nel formato seguente:

USB\VID_v(4)&PID_d(4)&MI_z(2)

Dove:

Una sezione del modello INF può anche specificare gli ID compatibili seguenti:

USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)

USB\CLASS_d(2)&SUBCLASS_s(2)

USB\CLASS_d(2)

USB\COMPOSITE

Dove:

  • d(2) è il codice della classe del dispositivo tratto dal descrittore del dispositivo.

  • s(2) è il codice della sottoclasse.

  • p(2) è il codice del protocollo.

Il codice della classe del dispositivo, il codice della sottoclasse e il codice del protocollo sono determinati rispettivamente dai campi bInterfaceClass, bInterfaceSubClass e bInterfaceProtocol del descrittore di interfaccia. Si tratta di numeri esadecimali a 2 cifre.