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, appelés descripteurs de système d’exploitation Microsoft (MODs).

En raison de l’émergence rapide des appareils qui contiennent plusieurs fonctions matérielles, de nombreux fabricants détectent que leurs appareils ne s’intègrent pas parfaitement aux classes d’appareils USB (Universal Serial Bus) actuelles. Cela prive les fabricants de l’une des fonctionnalités les plus intéressantes de la technologie USB : la normalisation des pilotes logiciels (en fonction de la classe de l’appareil). Microsoft Windows fournit des pilotes de classe natifs pour la plupart des appareils qui appartiennent à des classes de périphériques USB standard, et ces pilotes permettent aux utilisateurs finaux de joindre facilement ces appareils à l’ordinateur sans avoir à installer de logiciel spécial.

Pour prendre en charge les fabricants dont les appareils ne tiennent 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 Microsoft (MODs). Les applications et les logiciels système peuvent identifier les appareils qui appartiennent aux classes de périphériques définis par Microsoft en interrogeant les appareils pour déterminer s’ils prennent en charge MODs.

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 pour dériver l’avantage maximal 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 CDs, ce qui simplifie la livraison et la prise en charge des mises à niveau.

Support Operating-System

Les descripteurs de système d’exploitation Microsoft 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 de système d’exploitation Microsoft 2,0 sont pris en charge par :

  • Windows 8.1

pourquoi Windows émette-t-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 du 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 des autres chaînes que les IHV peuvent choisir de stocker sur 0xEE.
  • Il contient un numéro de version qui autorise les futures révisions des descripteurs de système d’exploitation Microsoft.

s’il n’existe aucun descripteur de chaîne à 0xEE, ou si le descripteur de chaîne au niveau de 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é du système d’exploitation.

Lorsqu’un nouvel appareil est connecté à un ordinateur pour la première fois, un système d’exploitation qui prend en charge les descripteurs de système d’exploitation Microsoft demandera le descripteur de chaîne qui se trouve à l’index 0xEE. Le descripteur de chaîne du 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 être au niveau de l’index 0xEE. La présence d’un descripteur de chaîne contenant 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 du 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 lors de l’énumération de l’appareil, avant le chargement du pilote de l’appareil, ce qui peut entraîner un dysfonctionnement de certains périphériques. ces périphériques 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 au niveau de l’index 0xEE, il doit répondre avec un paquet Stall (en d’autres termes, un paquet qui contient un identificateur de paquet de type STALL), qui est décrit dans la section « Erreurs de demande » 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 zéros de réinitialisation unique à l’appareil, afin de l’aider à récupérer à partir de son état bloqué (Windows XP uniquement).

Une fois que le système d’exploitation a demandé un descripteur de chaîne de système d’exploitation Microsoft à partir d’un périphérique, 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 obtenir un descripteur de chaîne de système d’exploitation Microsoft, le système d’exploitation n’effectue aucune demande supplémentaire pour ce descripteur.

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

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

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

Toutes les informations à stocker en tant que descripteur de fonctionnalité doivent respecter l’un des formats standard définis par Microsoft. Il n’est pas possible de définir ou d’implémenter des descripteurs de fonctionnalités supplémentaires sans le consentement de Microsoft. Microsoft a défini les descripteurs de fonctionnalités suivants :

  • ID de compatibilité étendue. Windows utilise des codes de classes et de sous-classes pour faciliter la localisation du 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, donc Windows ne pouvez pas utiliser les codes pour sélectionner un pilote par défaut. Les IHV peuvent contourner ce problème en stockant les informations dans le microprogramme sous la forme d’un descripteur de fonctionnalité d’ID de compatibilité étendu. Windows pouvez 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 classe ou niveau devnode. Le descripteur des fonctionnalités 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 microprogrammes de périphérique.

Spécification des descripteurs de système d’exploitation Microsoft 1,0
Spécification des descripteurs de système d’exploitation Microsoft 2,0
Création de périphériques USB pour Windows