Identificateurs USB standard
L’ensemble d’identificateurs générés pour les périphériques USB varie selon que l’appareil est un appareil à interface unique ou un appareil à interface multiple.
Périphériques USB à interface unique
Lorsqu’un nouveau périphérique USB est branché, le pilote du hub USB fourni par le système compose l’ID d’appareil suivant à l’aide d’informations extraites du descripteur d’appareil de l’appareil :
USB\VID_v(4)&PID_d(4)&REV_r(4)
Où :
- v(4) est le code du fournisseur que le comité USB affecte au fournisseur.
- d(4) est le code de produit que le fournisseur affecte à l’appareil.
- r(4) est le code de révision.
Le pilote hub extrait respectivement les codes fournisseur et produit des champs idVendor, idProduct et bcdDevice du descripteur d’appareil. Ces codes sont des nombres hexadécimaux à quatre chiffres.
Une section de modèle INF peut également spécifier l’ID matériel suivant :
USB\VID_v(4)&PID_d(4)
Et les ID compatibles suivants :
USB\CLASS_c(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_c(2)&SUBCLASS_s(2)
USB\CLASS_c(2)
Où :
- c(2) est le code de classe d’appareil extrait du descripteur de l’appareil.
- s(2) est le code de sous-classe de l’appareil.
- p(2) est le code du protocole.
Les champs bDeviceClass, bDeviceSubClass et bDeviceProtocol du descripteur d’appareil déterminent respectivement le code de classe d’appareil, le code de sous-classe et le code de protocole. Ces codes sont des nombres hexadécimaux à deux chiffres.
Périphériques USB à plusieurs interfaces
Les appareils avec plusieurs interfaces sont appelés appareils composites . Lorsqu’un nouveau périphérique composite USB est connecté à un ordinateur Windows, le pilote du hub USB crée un objet de périphérique physique (PDO) et avertit le système d’exploitation de mettre à jour la liste des appareils enfants. Une fois que Windows interroge le pilote hub pour les identificateurs matériels associés au nouveau PDO, il recherche les fichiers INF appropriés pour trouver une correspondance pour les identificateurs. S’il trouve une correspondance autre que USB\COMPOSITE, il charge le pilote indiqué dans le fichier INF. Toutefois, si aucune autre correspondance n’est trouvée, le système d’exploitation utilise l’ID compatible USB\COMPOSITE, pour lequel il charge le pilote parent générique USB. Le pilote parent générique crée ensuite un PDO distinct et génère un ensemble distinct d’identificateurs matériels pour chaque interface de l’appareil composite.
Chaque interface a un ID d’appareil du formulaire suivant :
USB\VID_v(4)&PID_d(4)&MI_z(2)
Où :
- v(4) est le code du fournisseur que le comité USB affecte au fournisseur.
- d(4) est le code de produit que le fournisseur affecte à l’appareil.
- z(2) est le numéro d’interface extrait du champ bInterfaceNumber du descripteur d’interface correspondant.
Une section de modèle INF peut également spécifier les ID compatibles suivants :
USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_d(2)&SUBCLASS_s(2)
USB\CLASS_d(2)
USB\COMPOSITE
Où :
- d(2) est le code de classe d’appareil extrait du descripteur de l’appareil.
- s(2) est le code de sous-classe.
- p(2) est le code du protocole.
Les champs bInterfaceClass, bInterfaceSubClass et bInterfaceProtocol du descripteur d’interface déterminent respectivement le code de classe d’appareil, le code de sous-classe et le code de protocole. Ces codes sont des nombres hexadécimaux à deux chiffres.