Partager via


Identifiants générés par USBPRINT.SYS

À compter de Windows 2000, le système d’exploitation fournit un pilote d’impression USB en mode noyau, usbprint.sys qui connecte le sous-système d’imprimante à la pile USB. Le pilote d’imprimante USB natif libère les fournisseurs de la nécessité de développer leurs propres pilotes d’imprimante USB en mode noyau. Cela permet aux fournisseurs de développer des pilotes d’imprimante en mode utilisateur de haut niveau qui fonctionnent avec des imprimantes USB et parallèles.

Le fichier d’installation usbprint.inf contient un ID compatible qui correspond à tous les périphériques d’imprimante de classe USB 7. Si le pilote du hub USB énumère l’un de ces appareils, le système d’exploitation trouve une correspondance pour l’ID généré par le pilote hub dans usbprint.inf et charge le pilote d’imprimante USB, usbprint.sys. L’ID compatible trouvé dans usbprint.inf a la forme suivante :

USB\CLASS_07

Où :

  • classe 07h = appareils appartenant à la classe d’imprimante USB

Dès qu’il est chargé, le pilote d’imprimante USB crée une nouvelle PDO pour l’appareil d’imprimante. Lorsque le gestionnaire Plug-and-Play (PnP) interroge les chaînes d’identification d’appareil du PDO nouvellement créé, le pilote d’imprimante USB crée un ID matériel dérivé de la chaîne IEEE 1284 de l’appareil compatible avec les identificateurs de chaîne générés par l’énumérateur de bus parallèle. Cet ID matériel a le format suivant :

USBPRINT\NameModel(20)Checksum(4)

Où :

  • NameModel(20) est la concaténation du nom du fabricant et le modèle de l’appareil, tronqués à un maximum de 20 caractères.

  • La somme de contrôle (4) est un code de vérification de redondance cyclique de 4 caractères (CRC) calculé à partir du nom du fabricant et du nom du modèle.

Les espaces de la chaîne sont remplacés par des traits de soulignement. Par exemple, si le nom du fabricant est « Hewlett-Packard », le nom du modèle est « HP Color LaserJet 550 », et la somme de contrôle est 3115, l’ID matériel est le suivant :

USBPRINT\Hewlett-PackardHP_Co3115

Dans l’exemple précédent, l’espace entre « HP » et « Color » dans le nom du modèle a été remplacé par un trait de soulignement pour produire la chaîne make/model tronquée « Hewlett-PackardHP_Co ».

Note Le CRC généré par le système d’exploitation peut ne pas correspondre au CRC calculé comme décrit dans la section précédente, ou par tout autre algorithme CRC. Par conséquent, votre pilote d’imprimante peut ne pas être en mesure de calculer l’ID matériel approprié à utiliser avec le fichier INF pour le pilote d’imprimante. Pour récupérer le hardwareID, il est préférable de rechercher le fichier setupapi.dev.log associé à l’imprimante USB en cours d’installation.