Vue d’ensemble de l’énumération des collections d’interface sur les périphériques composites USB

Les interfaces d’un périphérique USB composite peuvent être regroupées dans des collections. Le pilote parent générique USB (Usbccgp.sys) peut énumérer les collections d’interface de quatre manières.

Ces quatre méthodes d’énumération des collections d’interface sont organisées hiérarchiquement de la manière suivante :

  1. Routines de rappel fournies par le fournisseur

    Si le fournisseur a inscrit une routine de rappel auprès du pilote parent générique USB (Usbccgp.sys), le pilote parent générique accorde la priorité à la routine de rappel et autorise la routine de rappel à regrouper les interfaces plutôt que d’utiliser une autre méthode. Pour plus d’informations sur l’énumération de la collection d’interface à l’aide de routines de rappel fournies par le fournisseur, consultez Énumération de collections d’interface sur des périphériques composites USB.

  2. Descripteurs fonctionnels d’union

    . Si le fournisseur a activé l’énumération CDC et WMCDC dans le pilote parent générique USB, le pilote parent générique utilise des descripteurs fonctionnels d’union (UFD) pour regrouper les interfaces en regroupements. Lorsqu’elle est activée, cette méthode est prioritaire sur toutes les autres méthodes, à l’exception des routines de rappel fournies par le fournisseur.

  3. Descripteurs d’association d’interface

    Si des descripteurs d’association d’interface (IAD) sont présents, le pilote parent générique USB regroupe toujours les interfaces en utilisant des IAD plutôt qu’en utilisant des méthodes héritées. Microsoft recommande aux fournisseurs d’utiliser des IAD pour définir des collections d’interface.

  4. Méthode audio héritée

    Le pilote parent générique USB peut énumérer les collections d’interface à l’aide de techniques héritées réservées aux fonctions audio. Le pilote parent générique n’utilise pas cette méthode s’il existe des IAD sur l’appareil.

Personnalisation de l’énumération des collections d’interface pour les appareils composites

Certains périphériques USB ont des collections d’interface que le descripteur d’association d’interface USB (IAD) n’est pas en mesure de décrire. Dans Windows Vista et les systèmes d’exploitation ultérieurs, les fournisseurs peuvent personnaliser la façon dont le pilote parent générique (Usbccgp.sys) usb définit et énumère les collections d’interface d’un appareil. Cela se fait via une routine de rappel d’énumération dans un pilote de filtre. La routine de rappel aide le pilote parent générique à définir des collections d’interface personnalisées pour l’appareil.

Pour que le pilote parent générique définisse des collections d’interface personnalisées, le fournisseur de l’appareil composite doit :

  1. Implémentez la routine de rappel d’énumération (USBC_START_DEVICE_CALLBACK).
  2. Fournissez un pointeur vers la routine de rappel dans l’interface de configuration du périphérique USB (membre StartDeviceCallback de USBC_DEVICE_CONFIGURATION_INTERFACE_V1).
  3. Fournissez un fichier INF qui correspond à l’ID de l’appareil composite et charge explicitement le pilote parent générique USB et le pilote de filtre.

Considérations relatives à l’implémentation

Le pilote de filtre qui contient la routine de rappel d’énumération peut être un pilote de filtre supérieur ou inférieur. Lorsque le pilote parent générique USB reçoit une demande IRP_MN_START_DEVICE de démarrage d’un périphérique composite, il interroge l’interface de configuration du périphérique USB en envoyant une demande IRP_MN_QUERY_INTERFACE en haut de la pile de pilotes.

Lors de la réception d’une demande de IRP_MN_QUERY_INTERFACE, le pilote de filtre doit case activée le type GUID dans le membre InterfaceType de la demande pour vérifier que l’interface demandée est de type USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID. Si tel est le cas, le pilote de filtre retourne un pointeur vers l’interface dans le membre Interface de l’IRP.

La routine de rappel d’énumération doit retourner un pointeur vers un tableau de descripteurs de fonction (USBC_FUNCTION_DESCRIPTOR) qui décrivent les collections d’interface. Chaque descripteur de fonction contient un tableau de descripteurs d’interface (USB_INTERFACE_DESCRIPTOR) qui décrivent la collection d’interface. La routine de rappel doit allouer les descripteurs de fonction et les descripteurs d’interface à partir d’un pool non paginé. Le pilote parent générique libère cette mémoire. La routine de rappel doit s’assurer que le membre NumberOfInterfaces de chaque USB_INTERFACE_DESCRIPTOR indique avec précision le nombre d’interfaces dans la collection d’interfaces.

Le pilote parent générique crée un objet de périphérique physique (PDO) pour chaque descripteur de fonction.

L’interface de configuration de périphérique USB et la routine de rappel d’énumération sont résumées dans Routines de pilotes parent génériques.

Mécanisme de chargement de pilote parent générique USB

Lorsqu’un appareil composite répond aux exigences décrites dans Énumération des périphériques composites USB, le système d’exploitation génère un ID compatible de USB\COMPOSITE pour indiquer que l’appareil est composite. L’ID compatible produit une correspondance dans Usb.inf, et le système d’exploitation charge automatiquement le pilote parent générique USB, sans l’aide d’un fichier INF fourni par le fournisseur.

Toutefois, ce mécanisme par défaut ne fonctionne pas pour les appareils composites qui nécessitent une énumération personnalisée des collections d’interface, car dans le mécanisme par défaut, le système ne charge pas le pilote de filtre fourni par le fournisseur requis. Pour que le mécanisme de routine de rappel d’énumération fonctionne, le pilote de filtre qui expose l’interface de configuration du périphérique USB doit déjà être chargé lorsque le parent générique USB énumère les collections d’interface de l’appareil composite. Pour cela, le fournisseur de l’appareil composite doit installer un fichier INF qui correspond à l’ID de l’appareil composite et charge explicitement le pilote parent générique USB et le pilote de filtre.

Prise en charge de la classe d’appareil de communication mobile sans fil

Dans Windows Vista, le pilote parent générique (Usbccgp.sys) USB prend en charge les appareils inclus dans la classe de périphérique de communication (CDC) du bus série universel (USB) et la classe WMCDC (Usb Wireless Mobile Communication Device Class).

La spécification WMCDC (Usb Wireless Mobile Communication Device Class) établit une norme pour la connexion, le contrôle et l’échange de contenu entre un hôte et un appareil mobile sans fil (par exemple, un téléphone portable) lorsque l’appareil est connecté à un port USB. WMCDC est une extension de la classe d’appareils de communication (CDC), qui comprend une large gamme d’appareils de communication et de mise en réseau. Cette section décrit l’architecture qui prend en charge les appareils CDC et WMCDC dans les systèmes d’exploitation Windows.

Les appareils WMCDC se composent de plusieurs fonctions regroupées dans des combinés logiques. La plupart des appareils WMCDC ont un seul combiné logique, mais un appareil peut avoir plusieurs combinés logiques. Les combinés logiques incluent généralement des fonctions telles qu’un modem de données/télécopie, un magasin d’objets et une fonctionnalité de contrôle d’appel. Un combiné logique peut également inclure des fonctions de prise en charge définies par d’autres spécifications USB telles que la spécification de classe audio USB, la spécification de classe HID (Usb Human Input Device) et la spécification de classe vidéo USB.

L’architecture WMCDC Windows utilise des pilotes Windows natifs pour gérer les fonctions de votre appareil WMCDC. Par exemple, vous pouvez utiliser le sous-système TAPI (Téléphonie Application Program Interface) Windows pour gérer les fonctions de modem voix et données/télécopie de votre appareil et le sous-système NDIS (Network Driver Interface Specification) Windows pour gérer la fonction Ethernet LAN de l’appareil. En outre, vous pouvez gérer certaines fonctions, telles qu’une fonction OBEX (Object Exchange Protocol), dans un logiciel en mode utilisateur avec l’aide de WinUSB (Winusb.sys).

Cette image montre un exemple de pile de pilotes pour un périphérique WMCDC.

Diagramme d’un exemple de configuration d’appareil et de pile de pilotes.

Dans la figure précédente, le périphérique WMCDC contient un seul combiné logique : une fonction OBEX et une fonction modem. Un fichier INF fourni par le fournisseur charge les pilotes Windows natifs pour gérer le modem. La fonction OBEX est gérée par un pilote en mode utilisateur fourni par le fournisseur qui s’exécute dans l’infrastructure de pilote en mode utilisateur (UMDF). Le pilote en mode utilisateur utilise le protocole WPD (Windows Portable Devices) pour communiquer avec les applications utilisateur et l’interface que WinUSB exporte pour communiquer avec la pile USB. En règle générale, un fichier INF fourni par le fournisseur charge un instance distinct de Winusb.sys pour chaque collection d’interface qui utilise Winusb.sys.

Paramètres du Registre

La pile USB ne prend pas automatiquement en charge WMCDC. Vous devez fournir un fichier INF qui charge un instance de Usbccgp.sys. Le fichier INF doit contenir une section AddReg qui définit la valeur de Registre EnumeratorClass dans la clé logicielle associée à Usbccgp.sys à une valeur REG_BINARY construite à partir de trois nombres : 0x02, 0x00 et 0x 00. L’exemple de code suivant à partir d’un exemple de fichier INF montre comment définir EnumeratorClass sur la valeur appropriée.

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass, 0x00000001,02,00,00

La valeur que vous devez affecter à EnumeratorClass est construite à partir de trois valeurs binaires de 1 octet qui sont représentées dans le fichier INF par des paires de chiffres hexadécimaux : 02, 00 et 00. Ces trois nombres correspondent aux valeurs que le forum des implémenteurs USB a attribuées à la classe d’appareil CDC, à la sous-classe d’appareil CDC et au protocole d’appareil CDC, respectivement.

Les rubriques suivantes décrivent plus en détail le WMCDC :

Énumération de collections d’interface sur WMCDC

La classe de périphérique de communication mobile sans fil USB (WMCDC) est une sous-classe de la classe de périphérique de communication USB (CDC). La spécification WMCDC étend mais ne modifie pas considérablement les instructions cdc pour la définition des collections d’interface. En particulier, les appareils WMCDC doivent se conformer aux directives CDC pour définir les collections d’interface.

Les collections d’interface CDC contiennent une interface master (USB_INTERFACE_DESCRIPTOR) qui appartient à la classe d’interface de communication (bInterfaceClass = 0x02) ou à la classe d’interface de données (bInterfaceClass = 0x0A). Si l’interface master appartient à la classe d’interface de communication (ce qui est la situation classique), la sous-classe de l’interface master (bInterfaceSubClass) spécifie un modèle de contrôle CDC. Le modèle de contrôle indique le type d’interfaces incluses dans la collection d’interfaces. Pour obtenir une description des modèles de contrôle que définit le forum des implémenteurs USB, consultez la spécification CDC et la spécification WMCDC.

L’interface master d’une collection d’interfaces est suivie d’un ensemble de descripteurs fonctionnels obligatoires spécifiques à une classe, y compris un descripteur fonctionnel d’union (UFD). L’UFD répertorie les nombres des interfaces qui appartiennent à la collection. Le champ bMasterInterface de l’UFD contient le numéro de l’interface master. Zéro ou plusieurs champs bSubordinateInterface contiennent les nombres des autres interfaces (subordonnées) de la collection.

Pour la plupart des types de modèles de contrôle, le pilote parent générique (Usbccgp.sys) USB crée un objet de périphérique physique (PDO) pour chaque UFD. Toutefois, certains modèles de contrôle incluent une interface audio que le pilote parent générique énumère séparément de la collection d’interface à laquelle appartient l’interface audio. L’interface audio apparaît dans la liste des interfaces subordonnées (bSubordinateInterface) dans l’UFD de la collection d’interface, mais le pilote parent générique crée un PDO distinct pour l’interface audio. Le PDO pour l’interface audio et le PDO pour la collection d’interface à laquelle appartient l’interface audio se trouvent directement au-dessus de l’objet d’appareil fonctionnel (FDO) de l’appareil composite parent dans l’arborescence des objets de l’appareil. Le PDO de l’interface audio n’est pas un enfant de la collection d’interface.

Il existe deux modèles de contrôle dont les caractéristiques d’énumération sont configurables dans le Registre : le modèle de contrôle de combiné sans fil (WHCM), qui définit un combiné logique, et le modèle de contrôle OBEX (Object Exchange Protocol). Pour configurer les caractéristiques d’énumération de ces deux modèles de contrôle, vous devez fournir un fichier INF qui charge une instance de Usbccgp.sys et définit la valeur de CdcFlags dans la clé logicielle pour ce instance de Usbccgp.sys. Le tableau suivant décrit les options de configuration de CdcFlags.

CdcFlags bit Bit défini sur 0 Bit défini sur 1
0 (masque = 0x00000001) Le pilote parent générique USB crée une AOP distincte pour chaque interface OBEX. Le pilote parent générique USB crée un PDO unique pour toutes les interfaces OBEX.
1 (masque = 0x00000010) Le pilote parent générique USB ne crée pas de PDO pour les interfaces WHCM (combinés logiques). Ces interfaces restent masquées du point de vue de l’arborescence d’objets d’appareil. Le pilote parent générique USB crée une PDO pour chaque interface WHCM.

Par exemple, pour effacer les deux bits (définissez-les sur 0), votre fichier INF doit avoir la ligne suivante dans une section DDInstall.AddReg .

HKR, , CdcFlags, 0x00010001, 0x00000000

Pour définir les deux bits sur 1, votre fichier INF doit avoir la ligne suivante.

HKR, , CdcFlags, 0x00010001, 0x00000011

Pour définir bit 0 sur 1 et bit 1 sur 0, votre fichier INF doit avoir la ligne suivante.

HKR, , CdcFlags, 0x00010001, 0x00000001

Les deux bits peuvent être définis ou réinitialisés, indépendamment de l’autre bit.

Les illustrations suivantes illustrent comment différentes configurations de Registre peuvent créer différentes arborescences d’appareils pour le même appareil.

La figure suivante illustre la configuration PDO lorsque le bit 0 et le bit 1 de CdcFlags sont tous deux 0.

Diagramme illustrant un mappage d’une collection d’interface à un objet d’appareil pour CdcFlags = 0x00000000.

La collection d’interfaces whCM (Wireless Handset Control Model) de la figure précédente contient trois collections d’interfaces subordonnées (bSubordinateInterface) : deux collections OBEX et une collection de modems. Le bit 0 du CdcFlags est 0, de sorte que le pilote parent générique USB ne crée pas de PDO pour la collection d’interfaces WHCM. Le bit 1 de CdcFlags est 0, de sorte que le pilote parent générique USB génère un PDO distinct pour chaque collection d’interfaces OBEX.

L’illustration suivante illustre la configuration PDO lorsque les bits 0 et 1 de CdcFlags sont définis.

Diagramme illustrant le mappage d’une collection d’interface à un objet d’appareil pour CdcFlags = 0x00010001.

Étant donné que le bit 0 de CdcFlags est défini sur 1, le pilote parent générique USB crée un PDO pour la collection d’interfaces WHCM. Étant donné que le bit 1 de CdcFlags est défini sur 1, le pilote parent générique USB regroupe les deux collections OBEX et génère une seule AOP pour les deux collections OBEX.

Vous pouvez représenter des collections OBEX avec une seule ADO au niveau du noyau et faire la distinction entre chaque collection OBEX individuelle au sein d’un pilote en mode utilisateur. Le protocole WPD (Windows Portable Devices) peut vous aider à multiplexer les flux de données entre différentes fonctions OBEX au niveau de l’utilisateur, lorsque toutes les fonctions OBEX sont regroupées dans un seul PDO au niveau du noyau.

L’exemple de fichier INF suivant charge le pilote parent générique USB pour gérer un périphérique WMCDC et indique au parent générique USB de créer des PDO pour les combinés logiques et de créer une seule PDO pour toutes les collections OBEX dans le combiné logique.

[Version]
Signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%MSFT%
DriverVer=07/01/2001,5.1.2600.0
CatalogFile=ExampleCatalog.cat
PnpLockdown=1

[ControlFlags]
ExcludeFromSelect=*

[Manufacturer]
CompanyName=CompanyName,NTamd64

[CompanyName.NTamd64]
%COMPANYNAME.DeviceDesc%=CCGPDriverInstall,USB\Vid_????&Pid_????

[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg

[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services

[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass,0x00000001,02,00,00
HKR,,CdcFlags,0x00010001,0x00010001

[Strings]
MSFT="Microsoft"
COMPANYNAME.DeviceDesc="USB Phone Parent"

Gestion des collections d’interfaces CDC et WMCDC

Le pilote parent générique USB gère les interfaces whCM (Wireless Handset Control Model) d’une manière spéciale.

La liste suivante récapitule les principales façons dont la gestion des collections d’interfaces CDC et WMCDC diffère de celle des autres collections d’interface :

  • La classe d’appareil de communication mobile sans fil autorise un nombre limité d’imbrications de collections d’interfaces. En particulier, une collection d’interfaces de combiné logique (c’est-à-dire une collection d’interfaces WHCM) peut contenir d’autres collections d’interfaces subordonnées. Par exemple, un téléphone compatible WMCDC peut avoir une collection d’interfaces WHCM, qui à son tour contient une collection de modèles de contrôle abstrait et une collection OBEX.
  • Vous pouvez configurer le pilote parent générique USB pour ne pas énumérer les collections d’interfaces WHCM. Les collections d’interfaces WHCM qui ne sont pas énumérées restent masquées, mais le pilote parent générique utilise les informations des descripteurs de fonction union (UFD) qui appartiennent à des collections d’interfaces WHCM pour regrouper et énumérer des collections d’interfaces subordonnées.
  • Vous pouvez configurer le pilote parent générique USB pour créer des objets de périphérique physique (PPO) distincts pour les collections d’interface de modèle de contrôle OBEX, ou pour créer une seule PDO pour toutes les collections d’interface de modèle de contrôle OBEX.
  • La liste des numéros d’interface dans un UFD peut comporter des lacunes. Autrement dit, les numéros d’interface d’un UFD peuvent faire référence à des interfaces qui ne sont pas contiguës. Ce type de numérotation n’est pas valide, par exemple, pour le descripteur d’association d’interface USB (IAD), dont les interfaces doivent être contiguës et avoir des nombres séquentiels.
  • Les UFD peuvent inclure des collections d’interfaces audio associées
  • Les identificateurs matériels (ID) pour les collections d’interfaces CDC et WMCDC doivent inclure la sous-classe d’interface. Les autres interfaces USB, dont les ID matériels contiennent un suffixe MI_%02X qui spécifie le numéro d’interface, ne contiennent pas d’informations sur la sous-classe d’interface. Les informations de sous-classe sont incluses dans l’ID matériel pour permettre aux fournisseurs de fournir des fichiers INF avec des correspondances d’ID matériel pour des collections d’interfaces spécifiques, au lieu de s’appuyer sur la position de l’interface dans la disposition du descripteur pour déterminer le pilote à charger pour la collection. Les informations de sous-classe dans l’ID matériel permettent également un chemin de migration progressif à partir des pilotes fournis par le fournisseur actuel qui gèrent les collections d’interfaces WMCDC vers des alternatives, telles que les pilotes en mode utilisateur. Pour une présentation générale de la mise en forme des ID matériels d’interface USB, consultez Identificateurs pour les périphériques USB.

Modèles de contrôle CDC et WMCDC

La section Cdc et modèles de contrôle WMCDC décrit les propriétés des collections d’interface prises en charge dans les systèmes d’exploitation Microsoft Windows. Chaque description inclut, entre autres, une liste d’identificateurs de matériel et de périphérique (ID) que le pilote parent générique USB génère pour la collection d’interfaces.

La plupart des collections d’interfaces que Windows prend en charge correspondent à des modèles de contrôle qui appartiennent à la classe de périphériques de communication (CDC) et à la classe d’appareils de communication mobile sans fil (WMCDC), mais le système d’exploitation prend également en charge les collections d’interfaces audio et vidéo héritées et une collection d’interfaces que le Mobile Computing Promotion Consortium (MCPC) définit.

Les collections d’interfaces décrites dans cette section sont les suivantes :

Interfaces de classe audio

Les collections d’interface de classe de périphérique audio USB qui se produisent sur les appareils CDC et WMCDC ont les propriétés suivantes.

Propriété Description
Informations de référence Définition de la classe d’appareil Universal Serial Bus pour les périphériques audio, version 1.0.
Classe Toutes les interfaces de la collection d’interfaces doivent appartenir à la classe de périphérique audio (0x01).
Sous-classe Chaque interface de la collection d’interfaces doit avoir une sous-classe différente de la première interface de la collection.
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Zéro ou plusieurs interfaces contiguës qui appartiennent à la sous-classe de diffusion en continu (0x02).
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x

Les ID matériels des collections d’interfaces audio ne contiennent pas d’informations spécifiques à la classe d’interface.
ID compatibles USB\Class_01&SubClass_01&Prot_00
USB\Class_01&SubClass_01
USB\Class_01

Le format des ID compatibles pour les collections d’interfaces audio contient des informations incorporées sur la classe d’interface, la sous-classe d’interface et le protocole. Pour les collections d’interface audio sur un appareil CDC ou WMCDC, la classe d’interface est 01, la sous-classe est 01 et le protocole est 00.

Modèle de contrôle abstrait CDC

Il existe deux versions du modèle de contrôle abstrait (ACM). La version d’origine est définie dans la spécification CDC (Classe de périphérique de communication USB ). La spécification WMCDC (Wireless Mobile Communication Device Class) USB contient une définition étendue de l’ACM.

Les collections d’interfaces conformes à la spécification WMCDC sont décrites dans cette page.

Les collections d’interfaces conformes à la spécification CDC ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe Universal Serial Bus pour les appareils de communication, version 1.1, section 3.6.2.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master ACM (0x02).
Protocol Tout.
Énuméré Oui.
Interfaces associées Une interface de classe de données et des interfaces de classe audio facultatives que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02
USB\Vid_%04x&Pid_%04x&Cdc_02&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_02
ID compatibles USB\Class_02&SubClass_02&Prot_%02X
USB\Class_02&SubClass_02
USB\Class_02
Gestion spéciale L’UFD peut référencer une collection d’interfaces audio qui est énumérée indépendamment de la collection d’interfaces ACM.

Modèle de contrôle de mise en réseau CDC ATM

Les collections d’interfaces ANCM (AtM Networking Control Model) USB CDC ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.8.3
Classe de l’interface master Classe d’interface de communication (0x02)
Sous-classe de l’interface master ANCM (0x07)
Protocol Aucun (0x00)
Énuméré Yes
Interfaces associées Une interface de classe de données référencée par le descripteur fonctionnel Union (UFD)
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07
USB\Vid_%04x&Pid_%04x&Cdc_07&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_07
ID compatibles USB\Class_02&SubClass_07&Prot_00
USB\Class_02&SubClass_07
USB\Class_02
Gestion spéciale None

Modèle de contrôle CAPI CDC

Les collections d’interface de modèle de contrôle CAPI (COMMON ISDN API) CDC USB ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.7.2
Classe de l’interface master Classe d’interface de communication (0x02)
Sous-classe de l’interface master CAPI (0x05)
Protocol None (0x00)
Énuméré Yes
Interfaces associées Une interface de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05
ID compatibles USB\Class_02&SubClass_05&Prot_00
USB\Class_02&SubClass_05
Gestion spéciale None

Modèle de contrôle de ligne directe CDC

Les collections d’interface DLCM (Direct Line Model) CDC USB ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.6.1.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master DLCM (0x01).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Classe audio ou interfaces définies par le fournisseur que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01
USB\Vid_%04x&Pid_%04x&Cdc_01&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_01
ID compatibles USB\Class_02&SubClass_01&Prot_00
USB\Class_02&SubClass_01``USB\Class_02
Gestion spéciale L’UFD fait référence à une collection d’interface de classe audio qui est énumérée indépendamment de la collection d’interface DLCM.

Modèle de contrôle réseau Ethernet CDC

Les collections d’interface ENCM (USB CDC Ethernet Networking Control Model) ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.8.2.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master ENCM (0x06).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Une interface de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06
USB\Vid_%04x&Pid_%04x&Cdc_06&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_06
ID compatibles USB\Class_02&SubClass_06&Prot_00
USB\Class_02&SubClass_06
USB\Class_02
Gestion spéciale Les ID compatibles de ce modèle de contrôle ont une correspondance dans un fichier INF fourni par Microsoft. Si le système d’exploitation ne trouve pas de correspondance pour l’un des ID matériels dans un fichier INF fourni par le fournisseur, le système charge automatiquement le pilote miniport NDIS natif pour gérer la collection d’interface.

Modèle de contrôle ISDN multicanal CDC

Les collections d’interface de modèle de contrôle ISDN multicanal CDC USB ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.7.1
Classe de l’interface master Classe d’interface de communication (0x02)
Sous-classe de l’interface master MCCM (0x04)
Protocol None (0x00)
Énuméré Yes
Interfaces associées Plusieurs interfaces de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04
USB\Vid_%04x&Pid_%04x&Cdc_04&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_04
ID compatibles USB\Class_02&SubClass_04&Prot_00
USB\Class_02&SubClass_04
USB\Class_02
Gestion spéciale None

Modèle de contrôle téléphonique CDC

Les collections d’interface de modèle de contrôle téléphonique CDC USB ont les propriétés suivantes.

Propriété Description
Informations de référence Définitions de classe de bus série universel pour les appareils de communication, version 1.1, section 3.6.3.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master TCM (0x03).
Protocol Tout.
Énuméré Oui.
Interfaces associées Interfaces de classe audio que le descripteur fonctionnel d’union (UFD) référence.
ID du matériel USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03
USB\Vid_%04x&Pid_%04x&Cdc_03&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_03
Compatible ID USB\Class_02&SubClass_03&Prot_%02X
USB\Class_02&SubClass_03
USB\Class_02
Gestion spéciale L’UFD peut référencer une collection d’interface de classe audio qui est énumérée indépendamment de la collection d’interface TCM.

Interfaces uniques du fournisseur MCPC

Le Mobile Computing Promotion Consortium (MCPC) a défini un format pour les collections d’interface avant que la spécification WMCDC (Wireless Mobile Communication Device Class) ne fournit un format pour les appareils CDC uniques au fournisseur. Par conséquent, les collections d’interfaces MCPC ne sont pas conformes à la norme WMCDC.

Toutefois, le pilote parent générique USB peut énumérer les collections d’interface MCPC si WMCDC est activé. Les collections d’interface MCPC ont les propriétés suivantes.

Propriété Description
Informations de référence Spécification GL-004 du Mobile Computing Promotion Consortium (MCPC)
Classe CDC (0x02)
Sous-classe 0x88
Protocol None (0x00)
Énuméré Yes
Interfaces associées Zéro ou plusieurs interfaces de classe de données que le descripteur fonctionnel d’union (UFD) référence
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88
USB\Vid_%04x&Pid_%04x&Cdc_88&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_88
ID compatibles USB\Class_02&SubClass_88&Prot_00
USB\Class_02&SubClass_88
USB\Class_02
Gestion spéciale None

Interfaces de classe vidéo

Les collections d’interface de classe de périphérique vidéo USB qui se produisent sur les appareils CDC et WMCDC ont les propriétés suivantes.

Propriété Description
Informations de référence Définition de classe d’appareil Universal Serial Bus pour les appareils vidéo, version 1.0.
Classe Vidéo (0x0E).
Sous-classe Contrôle vidéo (0x01).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Zéro ou plusieurs interfaces contiguës qui appartiennent à la sous-classe de diffusion en continu (0x02).
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x
USB\Vid_%04x&Pid_%04x&MI_%02x
ID compatibles USB\Class_0E&SubClass_01&Prot_00
USB\Class_0E&SubClass_01
USB\Class_0E
Gestion spéciale Les collections d’interface de classe vidéo bénéficient d’une gestion spéciale sur les appareils CDC. Sur les appareils non CDC, les collections d’interface de classe vidéo sont définies par des descripteurs d’association d’interface (IAD). Sur les appareils CDC, les collections d’interface de classe vidéo sont définies par des descripteurs fonctionnels d’union (UFD).

Modèle de contrôle abstrait WMCDC

Il existe deux versions du modèle de contrôle abstrait (ACM). La version d’origine est définie dans la spécification CDC (Usb Communication Device Class). La spécification WMCDC (Usb Wireless Mobile Communication Device Class) contient une définition étendue de l’ACM. Les collections ACM qui contiennent une fonction de télécopie/modem doivent utiliser la définition WMCDC d’ACM plutôt que la définition ACM CDC d’origine.

Les collections d’interface conformes à la spécification CDC sont décrites sur cette page.

Les collections d’interface conformes à la spécification WMCDC ont les propriétés suivantes.

Propriété Description
Informations de référence Spécification de la sous-classe CDC du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.2.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master ACM (0x02).
Protocol Si la collection utilise un protocole AT Command Set Protocol, la valeur de protocole incorporée dans les ID compatibles est 0x01. Si la collection utilise l’un des protocoles décrits par la spécification WMCDC, la valeur de protocole incorporée dans les ID compatibles est 0x2 via 0x06 ou 0xFE.
Énuméré Oui.
Interfaces associées Une interface de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem
USB\Vid_%04x&Pid_%04x&Cdc_Modem&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_Modem
ID compatibles USB\Class_02&SubClass_Modem&Prot_%02X
USB\Class_02&SubClass_Modem
USB\Class_02
Gestion spéciale L’UFD peut référencer une collection d’interface audio qui est énumérée indépendamment de la collection d’interface ACM.

Les collections d’interface doivent respecter les exigences spéciales en matière de descripteur et de point de terminaison spécifiées dans la section 6.2 de la spécification WMCDC. Si la collection d’interface n’est pas conforme aux exigences WMCDC, mais que l’interface est conforme aux exigences cdc, le pilote parent générique USB énumère la collection d’interface et les ID matériels génériques avec des formats CDC.

Les ID compatibles de ce modèle de contrôle ont une correspondance dans un fichier INF fourni par Microsoft. Si le système d’exploitation ne trouve pas de correspondance pour l’un des ID matériels dans un fichier INF fourni par le fournisseur, le système charge automatiquement le pilote de filtre de modem TAPI (Native Telephony Application Programming Interface) pour gérer la fonction modem et définit les paramètres de Registre TAPI appropriés, sauf si le code de protocole est 0xFE. Si le code de protocole est 0xFE, le fournisseur doit fournir un co-programme d’installation d’appareil ou de classe pour remplir correctement les paramètres du Registre TAPI.

Modèle de gestion des appareils WMCDC

Les collections d’interface de modèle de gestion des périphériques WMCDC (DMM) USB ont les propriétés suivantes.

Propriété Description
Informations de référence Spécification de la sous-classe CDC du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.6.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master DMM (0x09).
Protocol Tout.
Énuméré Oui.
Interfaces associées Aucun.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09
USB\Vid_%04x&Pid_%04x&Cdc_09&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_09
ID compatibles USB\Class_02&SubClass_09&Prot_%02X
USB\Class_02&SubClass_09
USB\Class_02
Gestion spéciale Ce modèle de contrôle n’utilise pas de descripteur fonctionnel d’union (UFD).

Modèle de ligne directe mobile WMCDC

Les collections d’interfaces MDLM (Mobile Direct Line Model) USB WMCDC ont les propriétés suivantes :

Propriété Description
Informations de référence Spécification de la sous-classe CDC du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.7
Classe de l’interface master Classe d’interface de communication (0x02)
Sous-classe de l’interface master MDLM (0x0A)
Protocol Quelconque
Énuméré Yes
Interfaces associées Une ou plusieurs interfaces de classe de données référencées par le descripteur fonctionnel d’union (UFD)
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A
USB\Vid_%04x&Pid_%04x&Cdc_0A&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0A
ID compatibles USB\Class_02&SubClass_0A&Prot_%02X
USB\Class_02&SubClass_0A
USB\Class_02
Gestion spéciale Aucun.

Modèle de contrôle OBEX WMCDC (plusieurs PPO)

Il existe deux façons d’énumérer les collections d’interfaces de modèle de contrôle OBEX (Object Exchange Protocol) : le pilote parent générique USB peut regrouper toutes les interfaces OBEX et créer un seul objet de périphérique physique (PDO) pour toutes les interfaces OBEX, ou le pilote parent peut créer un PDO distinct pour chaque interface OBEX.

Lorsque le pilote parent générique USB affecte des PDO distincts à chaque interface OBEX, les PPO ont les propriétés suivantes.

Propriété Description
Informations de référence Spécification de la sous-classe CDC du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.5.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master OBEX (0x0B).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Une interface de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B
USB\Vid_%04x&Pid_%04x&Cdc_0B&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_0B
ID compatibles USB\Class_02&SubClass_0B&Prot_00
USB\Class_02&SubClass_0B
USB\Class_02
Gestion spéciale Les paramètres de Registre associés à la instance du pilote parent générique USB qui gère le périphérique composite déterminent si les interfaces OBEX sont gérées avec un seul PDO ou plusieurs PDO.

Modèle de contrôle OBEX WMCDC (PDO unique)

Il existe deux façons d’énumérer les collections d’interfaces de modèle de contrôle OBEX (Object Exchange Protocol) : le pilote parent générique USB peut regrouper toutes les interfaces OBEX et créer un seul objet de périphérique physique (PDO) pour toutes les interfaces OBEX, ou le pilote parent peut créer un PDO distinct pour chaque interface OBEX.

Lorsque le pilote parent générique USB affecte une seule AOP à toutes les interfaces OBEX, le PDO possède les propriétés suivantes.

Propriété Description
Informations de référence Spécification de la sous-classe CDC du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.5.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master OBEX (0x0B).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Une interface de classe de données que le descripteur fonctionnel d’union (UFD) référence.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX
USB\Vid_%04x&Pid_%04x&WPD_OBEX&MI_%02x
USB\Vid_%04x&Pid_%04x&WPD_OBEX
ID compatibles USB\Class_02&WPD_OBEX
USB\Class_02
Gestion spéciale Les paramètres de Registre associés à la instance du pilote parent générique USB qui gère le périphérique composite déterminent si les interfaces OBEX sont gérées avec un seul PDO ou plusieurs PDO. Pour obtenir une explication des paramètres de Registre qui spécifient la façon dont le pilote parent générique USB énumère les interfaces OBEX, consultez Énumération des collections d’interfaces sur les périphériques composites USB.

Modèle de contrôle de combiné sans fil WMCDC

Le pilote parent générique USB n’énumère pas toujours les collections d’interface whCM (Wireless Handset Control Model). Les paramètres de Registre associés aux instance du pilote parent générique USB qui gère la collection d’interfaces WHCM déterminent si le pilote parent générique USB crée un objet de périphérique physique (PDO) pour la collection d’interfaces. Pour obtenir une explication des paramètres de Registre qui spécifient la façon dont le pilote parent générique USB énumère les interfaces WHCM, consultez Énumération des collections d’interfaces sur les périphériques composites USB.

Les collections d’interfaces WHCM énumérées ont les propriétés suivantes.

Propriété Description
Informations de référence Spécification de la sous-classe CDC Du bus série universel pour les appareils de communication mobile sans fil, version 1.0, section 6.1.
Classe de l’interface master Classe d’interface de communication (0x02).
Sous-classe de l’interface master WHCM (0x08).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Aucun.
ID matériels USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08
USB\Vid_%04x&Pid_%04x&Cdc_08&MI_%02x
USB\Vid_%04x&Pid_%04x&Cdc_08
ID compatibles USB\Class_02&SubClass_08&Prot_00
USB\Class_02&SubClass_08
USB\Class_02
Gestion spéciale Le descripteur fonctionnel d’union (UFD) identifie les interfaces associées à un combiné logique.

Les formats d’ID matériel décrits dans les rubriques précédentes utilisent les conventions suivantes :

  • Un format printf en langage C représente des entiers. Par exemple, « %04x » signifie un entier hexadécimal à 4 chiffres, « %02x » signifie un entier hexadécimal à 2 chiffres, etc.
  • L’entier qui suit la chaîne « Vid_ » est une représentation hexadécimale à 4 chiffres du code du fournisseur que le comité USB (<www.usb.org>) attribue au fournisseur.
  • L’entier qui suit la chaîne « Pid_ » est une représentation hexadécimale à 4 chiffres du code de produit que le fournisseur affecte à l’appareil.
  • L’entier qui suit la chaîne « Rev_ » est une représentation hexadécimale à 4 chiffres du numéro de révision de l’appareil.
  • L’entier qui suit la chaîne « Cdc_ » est la sous-classe d’interface.
  • L’entier qui suit la chaîne « Prot_ » est le numéro de protocole.
  • L’entier qui suit la chaîne « MI_ » est une représentation hexadécimale à 2 chiffres du numéro d’interface, qui est extraite du champ bInterfaceNumber du descripteur d’interface.

Énumération des collections d’interface sur des périphériques USB avec iads

Si un périphérique composite USB a un descripteur d’association d’interface (IAD) dans son microprogramme, Windows énumère les collections d’interface comme si chaque collection était un seul appareil et affecte un seul objet d’appareil physique (PDO) à chaque collection d’interface et associe le matériel et les identificateurs compatibles (ID) à l’AOP. Pour obtenir une description détaillée des IAD, consultez Descriptor d’association d’interface USB. Cette section décrit les ID matériels et les identificateurs compatibles (ID) attribués aux collections d’interface associées à un IAD.

ID matériels d’appareils USB avec IADs

USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)

USB\VID_v(4)&PID_p(4)&MI_z(2)

Dans ces ID matériels,

  • v(4) est le code fournisseur à quatre chiffres que le comité USB attribue au fournisseur et qui est extrait du champ idVendor du descripteur d’appareil.
  • p(4) est le code de produit à quatre chiffres que le fournisseur attribue à l’appareil et qui est extrait du champ idProduct du descripteur d’appareil.
  • r(4) est le numéro de mise en production de l’appareil à quatre chiffres, en révision décimale codée binaire, que le fournisseur attribue à l’appareil et qui est extrait du champ bcdDevice du descripteur d’appareil.
  • z(2) est le numéro d’interface à deux chiffres extrait du champ bFirstInterface d’IAD.

ID compatibles des périphériques USB avec IAD

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

Dans ces ID compatibles, c(2), s(2) et p(2) contiennent des valeurs qui sont prises, respectivement, à partir des champs bFunctionClass, bFunctionSubClass et bFunctionProtocol de l’IAD.

Vous ne pouvez pas utiliser les IAD de manière récursive pour lier des fonctions. En particulier, si un appareil a des descripteurs IAD dans son microprogramme, le pilote parent générique ne regroupera pas les interfaces par classe de périphérique audio, comme décrit dans Énumération des collections d’interface sur les périphériques composites USB.

Énumération des collections d’interface sur les appareils audio sans IAD

Pour les appareils audio, le système d’exploitation Windows peut énumérer des groupes d’interfaces (collections d’interface) qui sont associés à une fonction et affecter un seul objet d’appareil physique (PDO) à chaque groupe, même si l’appareil n’a pas de descripteur d’association d’interface (IAD).

Le système d’exploitation regroupe les interfaces des périphériques audio composites en collections d’interfaces, si les interfaces remplissent les conditions suivantes :

  • Toutes les interfaces de la collection d’interfaces doivent être consécutives. En d’autres termes, les interfaces doivent être adjacentes les unes aux autres dans la mémoire du microprogramme.
  • Toutes les interfaces de la collection d’interfaces doivent appartenir à la classe de périphérique audio. Le fabricant de l’appareil spécifie qu’une interface appartient à la classe d’appareil audio en affectant une valeur de 0x01 au champ bInterfaceClass du descripteur d’interface.
  • Chaque interface de la collection d’interfaces doit avoir une sous-classe différente de la première interface de la collection. Le champ bInterfaceSubClass du descripteur d’interface spécifie la sous-classe d’appareil de l’interface.

Si une interface ne remplit pas toutes ces trois conditions, Windows tente de l’énumérer séparément au lieu de la regrouper avec les autres interfaces de classe audio.

Le système d’exploitation ne regroupe pas les interfaces de classe audio d’une manière spéciale si un descripteur d’association d’interface (IAD) est présent dans le microprogramme de l’appareil. La méthode IAD est toujours la méthode préférée pour regrouper les interfaces USB.

Cette section décrit le matériel et les identificateurs compatibles (ID) associés au PDO créé par le système d’exploitation pour une collection d’interfaces dont les interfaces appartiennent à la classe de périphérique audio.

ID matériels d’appareils audio sans IADs

USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)

USB\VID_v(4)&PID_p(4)&MI_z(2)

Dans ces ID matériels,

  • v(4) est le code fournisseur à quatre chiffres que le comité des normes USB attribue au fournisseur et qui est extrait du champ idVendor du descripteur d’appareil.
  • p(4) est le code de produit à quatre chiffres que le fournisseur attribue à l’appareil et qui est extrait du champ idProduct du descripteur d’appareil.
  • r(4) est le numéro de mise en production de l’appareil à quatre chiffres, en révision décimale codée binaire, que le fournisseur attribue à l’appareil et qui est extrait du champ bcdDevice du descripteur d’appareil.
  • z(2) est le numéro d’interface à deux chiffres extrait du champ bInterfaceNumber du descripteur d’interface.

ID compatibles des appareils audio sans IADs

USB\Class_c(2)&SubClass_s(2)&Prot_p(2)

USB\Class_c(2)&SubClass_s(2)

USB\Class_c(2)

Dans ces ID compatibles, c(2), s(2) et p(2) contiennent des valeurs prises, respectivement, à partir des champs bInterfaceClass, bInterfaceSubClass et bInterfaceProtocol du premier descripteur d’interface USB de chaque collection d’interface.