Partager via


Descripteurs de système d’exploitation Microsoft pour les périphériques USB

Microsoft fournit un ensemble de classes d’appareils propriétaires et de descripteurs USB, appelés descripteurs microsoft OS (MOD).

En raison de l’émergence rapide d’appareils qui contiennent plusieurs fonctions matérielles, de nombreux fabricants trouvent que leurs appareils ne s’intègrent pas confortablement dans l’une des classes d’appareils de bus série universelle (USB) actuelles. Cela prive ces fabricants de l’une des fonctionnalités les plus attrayantes de la technologie USB : la normalisation des logiciels de pilote (selon la classe de l’appareil). Windows fournit des pilotes de classe natifs pour la plupart des appareils appartenant à des classes de périphériques USB standard, et ces pilotes permettent aux utilisateurs finaux d’attacher facilement ces appareils à l’ordinateur sans avoir à installer de logiciels spéciaux.

Pour prendre en charge les fabricants dont les appareils ne s’intègrent pas dans l’ensemble actuel de classes d’appareils USB, Microsoft a développé un ensemble de classes d’appareils propriétaires et de descripteurs USB, appelés descripteurs microsoft OS (MOD). Les applications et les logiciels système peuvent identifier les appareils appartenant aux classes d’appareils définies par Microsoft en interrogeant les appareils pour déterminer s’ils prennent en charge les MOD.

Les descripteurs de système d’exploitation Microsoft ont des utilisations importantes autres que la prise en charge des classes d’appareils propriétaires. En particulier, ils fournissent un mécanisme permettant de tirer le meilleur parti du microprogramme de l’appareil. Avec l’aide des descripteurs du système d’exploitation Microsoft, vous pouvez utiliser le microprogramme pour fournir des fichiers d’aide, des icônes spéciales, des URL (Uniform Resource Locators), des paramètres de Registre et d’autres données nécessaires pour faciliter l’installation et améliorer la satisfaction des clients. Dans certains cas, vous pouvez renoncer à des supports de stockage tels que des disques de floppy et des cd, ce qui simplifie la livraison et la prise en charge des mises à niveau.

Prise en charge du système d’exploitation

Les descripteurs Microsoft OS 1.0 sont pris en charge dans :

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista, Windows Server 2008
  • Windows XP avec Service Pack 1 (SP1), Windows Server 2003

Les descripteurs Microsoft OS 2.0 sont pris en charge dans :

  • Windows 11
  • Windows 10
  • Windows 8.1

Pourquoi Windows émet-il une demande de descripteur de chaîne pour indexer 0xEE ?

Les appareils qui prennent en charge les descripteurs de système d’exploitation Microsoft doivent stocker un descripteur de chaîne USB spécial dans le microprogramme à l’index de chaîne fixe de 0xEE. Ce descripteur de chaîne est appelé descripteur de chaîne de système d’exploitation Microsoft.

  • Sa présence indique que l’appareil contient un ou plusieurs descripteurs de fonctionnalités de système d’exploitation.
  • Il contient les données requises pour récupérer les descripteurs de fonctionnalités de système d’exploitation associés.
  • Il contient un champ de signature qui différencie le descripteur de chaîne du système d’exploitation d’autres chaînes que les IHD peuvent choisir de stocker à 0xEE.
  • Il contient un numéro de version qui permet des révisions futures des descripteurs du système d’exploitation Microsoft.

S’il n’existe aucun descripteur de chaîne à 0xEE, ou si le descripteur de chaîne à cet index n’est pas un descripteur de chaîne de système d’exploitation valide, Windows suppose que l’appareil ne contient aucun descripteur de fonctionnalités de système d’exploitation.

Lorsqu’un nouvel appareil est attaché à un ordinateur pour la première fois, un système d’exploitation qui prend en charge les descripteurs de système d’exploitation Microsoft demande le descripteur de chaîne qui se trouve à l’index 0xEE. Le descripteur de chaîne de système d’exploitation Microsoft contient un champ de signature incorporé que le système d’exploitation utilise pour le différencier d’autres chaînes susceptibles d’être à l’index 0xEE. La présence d’un descripteur de chaîne qui contient le champ de signature approprié à l’index 0xEE indique au système d’exploitation que l’appareil prend en charge les descripteurs du système d’exploitation Microsoft. Le descripteur de chaîne de système d’exploitation Microsoft fournit également les informations de version du système d’exploitation.

Le système d’exploitation interroge le descripteur de chaîne au niveau de l’index 0xEE pendant l’énumération de l’appareil, avant que le pilote du périphérique se charge, ce qui peut entraîner un dysfonctionnement de certains appareils. Ces appareils ne sont pas pris en charge par les versions du système d’exploitation Windows qui prennent en charge les descripteurs de système d’exploitation Microsoft.

Si un appareil ne contient pas de descripteur de chaîne valide à l’index 0xEE, il doit répondre avec un paquet de blocage (en d’autres termes, un paquet qui contient un identificateur de paquet de type STALL), qui est décrit dans la section « Erreurs de requête » de la spécification du bus série universel. Si l’appareil ne répond pas avec un paquet de blocage, le système émet un paquet de réinitialisation zéro à fin unique sur l’appareil, pour l’aider à récupérer à partir de son état bloqué (Windows XP uniquement).

Une fois que le système d’exploitation demande un descripteur de chaîne de système d’exploitation Microsoft à partir d’un appareil, il crée la clé de Registre suivante :

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrr

Le système d’exploitation crée une entrée de Registre nommée osvc, sous cette clé de Registre qui indique si l’appareil prend en charge les descripteurs du système d’exploitation Microsoft. Si l’appareil ne fournit pas de réponse valide la première fois que le système d’exploitation l’interroge pour un descripteur de chaîne de système d’exploitation Microsoft, le système d’exploitation ne fait aucune demande supplémentaire pour ce descripteur.

Pour les entrées de Registre sous cette clé, consultez Entrées du Registre des périphériques USB.

Pour plus d’informations, consultez Spécification des descripteurs Microsoft OS 1.0.

Quels types de descripteurs de fonctionnalités de système d’exploitation Windows prend-il en charge ?

Toutes les informations à stocker en tant que descripteur de fonctionnalité doivent se conformer à l’un des formats standard définis par Microsoft. D’autres descripteurs de fonctionnalités ne peuvent pas être définis ni implémentés sans le consentement de Microsoft. Microsoft a défini les descripteurs de fonctionnalités suivants :

  • ID compat étendu. Windows utilise des codes de classe et de sous-classe pour localiser le pilote par défaut approprié pour un périphérique USB. Toutefois, le groupe de travail du périphérique USB doit allouer ces codes. Cela signifie que les appareils qui implémentent de nouveaux types de fonctionnalités n’ont pas encore de codes de classe et de sous-classe appropriés. Windows ne peut donc pas utiliser les codes pour sélectionner un pilote par défaut. Les IHD peuvent contourner ce problème en stockant les informations dans le microprogramme en tant que descripteur de fonctionnalité de système d’exploitation d’ID compatible étendu. Windows peut ensuite récupérer ces informations lorsque l’appareil est branché et l’utiliser pour déterminer le pilote par défaut à charger.
  • Propriétés étendues. Actuellement, il existe deux niveaux auxquels les propriétés peuvent être déclarées pour un périphérique USB : niveau de classe ou niveau devnode. Le descripteur de fonctionnalité de système d’exploitation des propriétés étendues permet à un fournisseur de stocker d’autres propriétés, telles que des pages d’aide, des URL et des icônes dans le microprogramme de l’appareil.