Le bus USB est physiquement conçu pour que l'acte d'insérer (et de retirer) une fiche puisse être reconnu par le contrôleur hôte. Lorsque cet événement "plug" se produit, le contrôleur hôte informe son pilote de périphérique qui scanne le bus et demande à chaque périphérique de s'identifier.
Tous les périphériques USB contiennent un ensemble d'informations sur le périphérique, appelé descripteurs. Les descripteurs de périphériques sont récupérés sur tous les périphériques avec la même commande. Cela permet à un pilote de périphérique pour le bus USB lui-même de demander effectivement à un périphérique nouvellement connecté ce qu'il est, et d'espérer obtenir une réponse raisonnable.
Parmi tous les descripteurs, seuls quelques-uns sont directement utilisés pour faire correspondre les pilotes à la plupart des périphériques. Cela est dû au fait que l'USB définit des classes de périphériques et que, généralement, le pilote système pour chaque classe de périphérique est suffisant pour gérer tous les périphériques qui prétendent appartenir à cette classe.
Tous les claviers prétendront faire partie de la classe HID (Human Interface), tout comme les souris, les tablettes et les contrôleurs de jeux, par exemple. La classe HID comporte plusieurs sous-classes (claviers, souris, etc.), et chacune d'entre elles est traitée de la manière prévue.
La plupart des périphériques de type disque se revendiquent de la classe Mass Storage, et le pilote système fonctionne également pour eux.
En plus de la classe et de la sous-classe, les descripteurs comprennent également l'ID du fournisseur (VID), l'ID du produit (PID) et la révision. Les ID des fournisseurs sont attribués par le comité de normalisation (la plupart du temps dans l'ordre d'émission, mais certaines entreprises ont reçu des demandes spéciales : intel est 0x8086, par exemple). Les ID des produits sont attribués par chaque fournisseur, et la combinaison du VID et du PID doit être unique pour chaque produit publié.
Lorsqu'un périphérique est installé pour la première fois, le VID, le PID, la révision, la classe et la sous-classe sont utilisés de manière prévisible pour choisir le pilote de périphérique qui est chargé. Le fait d'avoir des noms spécifiques au fournisseur et au produit permet à un fournisseur de personnaliser un périphérique qui pourrait autrement être géré (presque) correctement par le pilote système standard.
Un autre descripteur important est le numéro de série du dispositif. Si un périphérique possède un numéro de série, il peut être reconnu et traité de la même manière lorsqu'il est rebranché, même si un port USB physique différent est utilisé. C'est important pour les périphériques de stockage afin qu'ils reçoivent la même lettre de lecteur, et pour les périphériques tels que les adaptateurs de port série et les modems afin qu'ils reçoivent la même désignation de port COM.
L'ensemble de ce processus est documenté à l'adresse suivante エムエスディーエヌ mais les détails sont dispersés dans divers endroits.