Partager via


Vue d’ensemble de l’énumération des regroupements d’interfaces sur des périphériques composites USB

Les interfaces sur un périphérique USB composite peuvent être regroupées dans des regroupements. Le pilote parent générique USB (Usbccgp.sys) peut énumérer les collections d’interfaces de quatre façons.

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 donne la priorité à la routine de rappel et permet à la routine de rappel de regrouper les interfaces plutôt que d’utiliser une autre méthode. Pour plus d’informations sur l’énumération de la collection d’interfaces à l’aide de routines de rappel fournies par le fournisseur, consultez Énumération des collections d’interfaces sur les périphériques composites USB.

  2. Descripteurs fonctionnels 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 union (UFD) pour regrouper des interfaces dans des collections. 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 à l’aide d’IAD plutôt qu’à l’aide de méthodes héritées. Microsoft recommande aux fournisseurs d’utiliser des IAD pour définir des collections d’interfaces.

  4. Méthode audio héritée

    Le pilote parent générique USB est en mesure d’énumérer les collections d’interfaces à 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 regroupements d’interface que le descripteur de l’association d’interface USB (IAD) ne peut pas décrire. Dans les systèmes d’exploitation Windows Vista et ultérieurs, les fournisseurs peuvent personnaliser la façon dont le pilote parent générique USB (Usbccgp.sys) définit et énumère les collections d’interface d’un appareil. Pour ce faire, effectuez 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’interfaces personnalisées pour l’appareil.

Pour que le pilote parent générique définisse les collections d’interfaces 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 de périphérique USB (membre StartDeviceCallback de USBC_DEVICE_CONFIGURATION_INTERFACE_V1).
  3. Fournissez un fichier INF qui correspond à l’ID d’appareil du périphérique 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 de IRP_MN_START_DEVICE pour démarrer un périphérique composite, il interroge l’interface de configuration du périphérique USB en envoyant une demande de IRP_MN_QUERY_INTERFACE en haut de la pile des pilotes.

Lors de la réception d’une requête IRP_MN_QUERY_INTERFACE, le pilote de filtre doit vérifier le type GUID dans le membre InterfaceType de la requête pour vérifier que l’interface demandée est de type USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID. Si c’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’interfaces. La routine de rappel doit allouer les descripteurs de fonction et les descripteurs d’interface du 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 signale avec précision le nombre d’interfaces dans la collection d’interfaces.

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

L’interface de configuration du périphérique USB et la routine de rappel d’énumération sont résumées dans les routines de pilote parent générique.

Mécanisme de chargement du 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 pour USB\COMPOSITE 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’interfaces, 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 du périphérique composite. Cela nécessite que le fournisseur de l’appareil composite installe 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’appareils de communication mobile sans fil

Dans Windows Vista, le pilote parent générique USB (Usbccgp.sys) prend en charge les appareils inclus dans la classe de périphérique de communication USB (Universal Serial Bus) et usb Mobile Communication Device Class (WMCDC).

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 cellulaire) lorsque l’appareil est connecté à un port USB. WMCDC est une extension de la classe d’appareils de communication (CDC), qui comprend un large éventail 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 en 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 installation de contrôle des appels. 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 la classe audio USB, la spécification de classe HID (USB Human Input Device) et la spécification de la 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 d’interface de programme d’application de téléphonie Windows (TAPI) pour gérer les fonctions de modem voix et de télécopie de votre appareil et du sous-système NDIS (Network Driver Interface Specification) de l’appareil 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 appareil WMCDC.

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

Dans la figure précédente, l’appareil 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 l’introduction à WinUSB pour les développeurs exporte pour communiquer avec la pile USB. En règle générale, un fichier INF fourni par le fournisseur charge une instance distincte de Winusb.sys pour chaque collection d’interfaces 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 une 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 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 octets représentées dans le fichier INF par 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 des 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 s’étend, mais ne modifie pas considérablement les instructions de capture de données modifiées pour la définition des collections d’interfaces. En particulier, les appareils WMCDC doivent respecter les instructions de capture de données modifiées pour définir des collections d’interfaces.

Les collections d’interface CDC contiennent une interface maître (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 principale appartient à la classe d’interface de communication (qui est la situation classique), la sous-classe de l’interface principale (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 définis par le Forum des implémenteurs USB, consultez la spécification CDC et la spécification WMCDC.

L’interface principale d’une collection d’interfaces est suivie d’un ensemble de descripteurs fonctionnels spécifiques à la classe obligatoires, y compris un descripteur fonctionnel union (UFD). L’UFD répertorie les nombres des interfaces qui appartiennent à la collection. Le champ bMasterInterface de l’UFD contient le nombre de l’interface principale. 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 USB (Usbccgp.sys) crée un objet d’appareil 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’interfaces, mais le pilote parent générique crée un PDO distinct pour l’interface audio. Le PDO de l’interface audio et l’objet PDO de la collection d’interfaces auxquels appartient l’interface audio sont directement au-dessus de l’objet d’appareil fonctionnel (FDO) du périphérique composite parent dans l’arborescence d’objets de l’appareil. Le PDO de l’interface audio n’est pas un enfant de la collection d’interfaces.

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 de cette instance de Usbccgp.sys. Le tableau suivant décrit les options de configuration de CdcFlags.

Bit CdcFlags Bit défini sur 0 Bit défini sur 1
0 (mask = 0x00000001) Le pilote parent générique USB crée un PDO distinct pour chaque interface OBEX. Le pilote parent générique USB crée une seule PDO pour toutes les interfaces OBEX.
1 (mask = 0x00000010) Le pilote parent générique USB ne crée pas de pdOs pour les interfaces WHCM (combinés logiques). Ces interfaces restent masquées du point de vue de l’arborescence d’objets de l’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 le bit 0 sur 1 et le bit 1 sur 0, votre fichier INF doit avoir la ligne suivante.

HKR, , CdcFlags, 0x00010001, 0x00000001

L’un ou l’autre bit peut être défini ou réinitialisé, 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 0 bit et bit 1 de CdcFlags sont 0.

Diagramme illustrant une collection d’interfaces avec le mappage d’objets d’appareil pour CdcFlags = 0x00000000.

La collection d’interface de modèle de contrôle de combiné sans fil (WHCM) de la figure précédente contient trois collections d’interface subordonnées (bSubordinateInterface) : deux collections OBEX et une collection modem. Le bit 0 de cdcFlags est 0. Par conséquent, 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. Par conséquent, le pilote parent générique USB génère un PDO distinct pour chaque collection d’interfaces OBEX.

La figure suivante illustre la configuration PDO lorsque les deux bits 0 et bit 1 de CdcFlags sont définis.

Diagramme illustrant une collection d’interfaces sur le mappage d’objets 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 une 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 un seul PDO pour les deux collections OBEX.

Vous pouvez représenter des collections OBEX avec un seul PDO 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 en 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 de modèle de contrôle de combiné sans fil (WHCM) d’une manière spéciale.

La liste suivante récapitule les méthodes les plus importantes dans lesquelles la gestion des collections d’interface CDC et WMCDC diffère de celle des autres collections d’interfaces :

  • La classe d’appareils de communication mobile sans fil permet une quantité limitée d’imbrication de collections d’interfaces. En particulier, une collection d’interfaces de combiné logique (autrement dit, 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 contient à son tour une collection de modèles de contrôle abstraite 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’interface WHCM qui ne sont pas énumérées restent masquées, mais le pilote parent générique utilise des informations des descripteurs de fonction union (UFD) qui appartiennent à des collections d’interface WHCM pour regrouper et énumérer les collections d’interfaces subordonnées.
  • Vous pouvez configurer le pilote parent générique USB pour créer des objets d’appareil physique distincts pour les collections d’interfaces de modèle de contrôle OBEX ou créer une seule PDO pour toutes les collections d’interfaces de modèle de contrôle OBEX.
  • La liste des numéros d’interface d’un UFD peut avoir 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 de l’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’interface CDC et WMCDC doivent inclure la sous-classe d’interface. D’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 des pilotes fournis par le fournisseur actuel qui gèrent les collections d’interfaces WMCDC à des alternatives, telles que les pilotes en mode utilisateur. Pour une discussion générale sur 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 Modèles de contrôle CDC et 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 d’appareil (ID) générés par le pilote parent générique USB pour la collection d’interfaces.

La plupart des collections d’interfaces que Windows prend en charge correspondent aux modèles de contrôle appartenant à la classe d’appareil de communication (CDC) et à la classe d’appareils mobiles sans fil (WMCDC), mais le système d’exploitation prend également en charge les collections d’interface 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’interfaces de classe périphérique audio USB qui se produisent sur les appareils CDC et WMCDC ont les propriétés suivantes.

Propriété Description
Référence Définition de classe d’appareil Serial Bus universelle pour les appareils audio, version 1.0.
Classe Toutes les interfaces de la collection d’interfaces doivent appartenir à la classe d’appareil 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 appartenant à la sous-classe de diffusion en continu (0x02).
ID de matériel 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’interfaces 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 (USB Communication Device Class ). La spécification WMCDC (Usb Wireless Mobile Communication Device Class ) contient une définition étendue du module ACM.

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

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

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.6.2.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale 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 union (UFD) référence.
ID de matériel 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’interface ANCM (USB CDC Networking Control Model) ont les propriétés suivantes.

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.8.3
Classe de l’interface principale Communication Interface, classe (0x02)
Sous-classe de l’interface principale ANCM (0x07)
Protocol Aucun (0x00)
Énuméré Oui
Interfaces associées Interface de classe de données référencée par le descripteur fonctionnel Union (UFD)
ID de matériel 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 Aucune

Modèle de contrôle CAPI CDC

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

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.7.2
Classe de l’interface principale Communication Interface, classe (0x02)
Sous-classe de l’interface principale CAPI (0x05)
Protocol Aucun (0x00)
Énuméré Oui
Interfaces associées Interface de classe de données que le descripteur fonctionnel union (UFD) référence.
ID de matériel 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 Aucune

Modèle de contrôle de ligne directe CDC

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

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.6.1.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale DLCM (0x01).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Interfaces définies par le fournisseur ou la classe audio que le descripteur fonctionnel union référence.
ID de matériel 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’interfaces de classe audio qui est énumérée indépendamment de la collection d’interfaces DLCM.

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

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

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.8.2.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale ENCM (0x06).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Interface de classe de données que le descripteur fonctionnel union (UFD) référence.
ID de matériel 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’interfaces.

Modèle de contrôle ISDN multicanal CDC

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

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.7.1
Classe de l’interface principale Communication Interface, classe (0x02)
Sous-classe de l’interface principale MCCM (0x04)
Protocol Aucun (0x00)
Énuméré Oui
Interfaces associées Plusieurs interfaces de classe de données référencées par le descripteur fonctionnel union (UFD).
ID de matériel 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 Aucune

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

Les collections d’interface TCM (USB CDC Telephone Control Model) ont les propriétés suivantes.

Propriété Description
Référence Définitions de classes Serial Bus universelles pour les appareils de communication, version 1.1, section 3.6.3.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale TCM (0x03).
Protocol Tout.
Énuméré Oui.
Interfaces associées Interfaces de classe audio référencées par le descripteur fonctionnel union (UFD).
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
ID compatible 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’interfaces de classe audio qui est énumérée indépendamment de la collection d’interfaces TCM.

Interfaces uniques du fournisseur MCPC

Le Mobile Computing Promotion Consortium (MCPC) a défini un format pour les collections d’interfaces avant la spécification WMCDC (Wireless Mobile Communication Device Class) fourni un format pour les appareils CDC uniques du 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’interfaces MCPC si WMCDC est activé. Les collections d’interfaces MCPC ont les propriétés suivantes.

Propriété Description
Référence Spécification du GL-004 (Mobile Computing Promotion Consortium) (MCPC)
Classe CDC (0x02)
Sous-classe 0x88
Protocol Aucun (0x00)
Énuméré Oui
Interfaces associées Zéro ou plusieurs interfaces de classe de données référencées par le descripteur fonctionnel union (UFD)
ID de matériel 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 Aucune

Interfaces de classe vidéo

Les collections d’interfaces 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
Référence Définition de classe d’appareil Serial Bus universelle 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 appartenant à la sous-classe de diffusion en continu (0x02).
ID de matériel 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’interfaces de classe vidéo reçoivent une gestion spéciale sur les appareils CDC. Sur les appareils non CDC, les collections d’interfaces de classe vidéo sont définies par les descripteurs d’association d’interface (IAD). Sur les appareils CDC, les collections d’interfaces de classe vidéo sont définies par des descripteurs fonctionnels 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 du module 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’interfaces conformes à la spécification CDC sont décrites sur cette page.

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

Propriété Description
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.2.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale 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 Interface de classe de données que le descripteur fonctionnel union (UFD) référence.
ID de matériel 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’interfaces audio qui est énumérée indépendamment de la collection d’interfaces ACM.

Les collections d’interfaces 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’interfaces ne respecte pas les exigences WMCDC, mais que l’interface est conforme aux exigences de capture de données modifiées, le pilote parent générique USB énumère la collection d’interfaces et les ID de matériel générique 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 (NativePhony 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 appareil ou un co-programme d’installation de classe pour remplir correctement les paramètres du Registre TAPI.

Modèle de gestion des appareils WMCDC

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

Propriété Description
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.6.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale DMM (0x09).
Protocol Tout.
Énuméré Oui.
Interfaces associées Aucune.
ID de matériel 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 union (UFD).

Modèle de ligne directe mobile WMCDC

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

Propriété Description
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.7
Classe de l’interface principale Communication Interface, classe (0x02)
Sous-classe de l’interface principale MDLM (0x0A)
Protocol Tout
Énuméré Oui
Interfaces associées Une ou plusieurs interfaces de classe de données référencées par le descripteur fonctionnel union (UFD)
ID de matériel 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 Aucune.

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 pdOs distincts à chaque interface OBEX, les PPO ont les propriétés suivantes.

Propriété Description
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.5.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale OBEX (0x0B).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Interface de classe de données que le descripteur fonctionnel union (UFD) référence.
ID de matériel 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 à l’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 une seule 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 PDO à toutes les interfaces OBEX, l’objet PDO a les propriétés suivantes.

Propriété Description
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.5.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale OBEX (0x0B).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Interface de classe de données que le descripteur fonctionnel union (UFD) référence.
ID de matériel 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 à l’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 une seule 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’interfaces de modèle de contrôle de combiné sans fil (WHCM). Les paramètres de Registre associés à l’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 ou non. 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
Référence Spécification de sous-classe CDC de bus série universelle pour les appareils de communication mobile sans fil, version 1.0, section 6.1.
Classe de l’interface principale Classe d’interface de communication (0x02).
Sous-classe de l’interface principale WHCM (0x08).
Protocol Aucun (0x00).
Énuméré Oui.
Interfaces associées Aucune.
ID de matériel 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 union (UFD) identifie les interfaces associées à un combiné logique.

Les formats d’ID matériel dans les rubriques précédentes décrivent 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, et ainsi de suite.
  • 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>) affecte au fournisseur.
  • L’entier qui suit la chaîne « Pid_ » est une représentation hexadécimale à 4 chiffres du code 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’interfaces sur des périphériques USB avec des IAD

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

ID matériels d’appareils USB avec DES IAD

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 du fournisseur à quatre chiffres attribué par le comité USB au fournisseur et extrait du champ idVendor du descripteur de l’appareil.
  • p(4) est le code de produit à quatre chiffres attribué par le fournisseur à l’appareil et extrait du champ idProduct du descripteur de l’appareil.
  • r(4) est le numéro de version de l’appareil à quatre chiffres, en révision décimale codée binaire, que le fournisseur affecte à l’appareil et qui est extrait du champ bcdDevice du descripteur de l’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 des 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 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 de fonctions. En particulier, si un appareil a des descripteurs IAD dans son microprogramme, le pilote parent générique ne regroupe pas les interfaces par classe de périphérique audio, comme décrit dans Énumération des collections d’interfaces sur les périphériques composites USB.

Énumération des collections d’interfaces 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’interfaces) 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 dans les 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 d’appareil 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 répond 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 de regroupement d’interfaces USB.

Cette section décrit les identificateurs matériels et compatibles associés à l’objet PDO créé par le système d’exploitation pour une collection d’interfaces dont les interfaces appartiennent à la classe d’appareil audio.

ID matériels d’appareils audio sans IAD

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 du fournisseur à quatre chiffres attribué par le comité de normes USB au fournisseur et extrait du champ idVendor du descripteur de l’appareil.
  • p(4) est le code de produit à quatre chiffres attribué par le fournisseur à l’appareil et extrait du champ idProduct du descripteur de l’appareil.
  • r(4) est le numéro de version de l’appareil à quatre chiffres, en révision décimale codée binaire, que le fournisseur affecte à l’appareil et qui est extrait du champ bcdDevice du descripteur de l’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 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 prises respectivement à partir des champs bInterfaceClass, bInterfaceSubClass et bInterfaceProtocol du premier descripteur d’interface USB dans chaque collection d’interface.