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

Résumé

Microsoft fournit un ensemble de classes d’appareils propriétaires et de descripteurs USB, qui sont appelés descripteurs de système d’exploitation (MOD).

En raison de l’émergence rapide d’appareils qui contiennent plusieurs fonctions matérielles, de nombreux fabricants constatent que leurs appareils ne s’intègrent pas confortablement dans les classes d’appareils USB (Universal Serial Bus) actuelles. Cela prive ces fabricants de l’une des caractéristiques les plus intéressantes de la technologie USB : la standardisation des logiciels pilotes (selon la classe de l’appareil). Microsoft Windows fournit des pilotes de classe native pour la plupart des appareils qui appartiennent à 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 de périphériques USB, Microsoft Corporation a développé un ensemble de classes d’appareils propriétaires et de descripteurs USB, appelés descripteurs de système d’exploitation (MOD). Les applications et les logiciels système peuvent identifier les appareils qui appartiennent 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 de 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 aux supports de stockage tels que les disquettes et les DISQUES CD, ce qui simplifie la distribution et la prise en charge des mises à niveau.

support Operating-System

Les descripteurs Microsoft OS 1.0 sont pris en charge par :

  • 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 par :

  • 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 de système d’exploitation des autres chaînes que les IHVs peuvent choisir de stocker au 0xEE.
  • Il contient un numéro de version qui permet des révisions ultérieures des descripteurs de système d’exploitation Microsoft.

S’il n’y a pas de descripteur de chaîne au 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é 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 des autres chaînes qui peuvent se trouver au 0xEE d’index. 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 de système d’exploitation Microsoft. Le descripteur de chaîne de système d’exploitation Microsoft fournit également des informations sur la 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 le chargement du pilote de l’appareil, 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 décrochage (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 décrochage, le système émet un paquet de réinitialisation à zéro à fin unique pour l’appareil, pour l’aider à récupérer de son état bloqué (Windows XP uniquement).

Une fois que le système d’exploitation a 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 de 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 n’effectue aucune autre demande pour ce descripteur.

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

Pour plus d’informations, consultez Descripteurs de système d’exploitation Microsoft.

Quels types de descripteurs de fonctionnalités de système d’exploitation sont pris en charge par Windows ?

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

  • ID de compat étendu. Windows utilise des codes de classe et de sous-classe pour aider à localiser le pilote par défaut approprié pour un périphérique USB. Toutefois, le groupe de travail de périphérique USB doit allouer ces codes. Cela signifie que les appareils qui implémentent de nouveaux types de fonctionnalités n’ont souvent pas encore de codes de classe et de sous-classe appropriés, de sorte que Windows ne peut pas utiliser les codes pour sélectionner un pilote par défaut. Les IVS 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 de compat étendu. Windows peut ensuite récupérer ces informations lorsque l’appareil est branché et les 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 classe ou niveau devnode. Le descripteur de fonctionnalité de système d’exploitation des propriétés étendues permet à un fournisseur de stocker des propriétés supplémentaires, telles que des pages d’aide, des URL et des icônes, dans le microprogramme de l’appareil.

Spécification des descripteurs Microsoft OS 1.0
Spécification des descripteurs Microsoft OS 2.0
Création de périphériques USB pour Windows