Partager via


Terminologie audio WDM

Cette section décrit les différences de terminologie entre l’architecture du pilote audio WdM (Microsoft Windows Driver Model) et l’architecture générique du pilote en couches Windows. L’architecture de pilote générique est illustrée par les pilotes de port/miniport SCSI (voir Architecture du pilote de stockage).

Les termes définis par les architectures de pilotes audio génériques et WDM sont similaires, mais ils présentent des différences importantes, comme décrit ci-dessous.

Miniport Driver (Générique)

Le pilote miniport (générique) est un driver spécifique au matériel pour une carte qui réside sur un bus système (par exemple, PCI ou ISA). Ce pilote a un point d’entrée unique, DriverEntry et inscrit une table de fonctions avec un pilote de port. Cette table de fonctions sert d’interface de bord supérieur du pilote miniport.

Le pilote miniport se trouve sous le pilote de port dans la pile des pilotes. Autrement dit, tous les appels vers le pilote miniport sont effectués à partir du pilote de port et toutes les communications sortantes du pilote miniport se dirigent vers l'interface de bord inférieur du pilote de port.

La figure suivante illustre la signification de la pile de termes, de l’interface de bord supérieur et de l’interface de bord inférieur , car elles sont utilisées dans ce contexte. Le bloc représentant le pilote de port est empilé sur le bloc représentant le pilote miniport. Par conséquent, le pilote miniport se trouve sous le pilote de port dans la « pile ».

Diagramme illustrant la pile des pilotes avec le pilote de port en haut et le pilote miniport ci-dessous, montrant les interfaces supérieures et inférieures.

Les pilotes port et miniport communiquent via les interfaces logicielles qu’ils exposent les uns aux autres. Dans la figure précédente, ces interfaces sont associées au bord inférieur du bloc représentant le pilote de port et le bord supérieur du bloc représentant le pilote miniport. Cette représentation est la source des termes « interface de bord inférieur » et « interface haute périphérie ».

Pilote de port (générique)

Le pilote de port (générique) entoure un pilote miniport.

Pilote de port :

  • Implémente des filtres de streaming WDM.

  • Fournit une interface commune au reste du système d’exploitation.

  • Gère les demandes d’E/S à partir du système et recastre ces requêtes en tant qu’appels dans la table de fonctions du pilote miniport.

  • Met à disposition du pilote miniport une bibliothèque de fonctions de support (interface inférieure du pilote de port).

Le pilote de port masque la plupart des détails du système d’exploitation au pilote mini-port, et le pilote mini-port masque les spécificités du matériel sous-jacent au pilote de port. L’implémentation du pilote de port peut subir des modifications pour différentes versions du système d’exploitation, mais l’interface du pilote de port pour le pilote miniport reste plus ou moins inchangée, ce qui permet au pilote miniport d’être largement indépendant de la plateforme.

Minidriver (générique)

Le minidriver (générique) représente un composant matériel sur un bus. Le minidriver utilise le pilote de bus pour communiquer avec l’appareil physique sur le bus, et il lie le pilote de bus et un ou plusieurs pilotes de classe.

Les pilotes de classe aident le minipilote à présenter l’appareil physique aux clients en tant que type d’appareil logique. Dans les environnements WDM, un minidriver reçoit généralement des requêtes sous forme de IRP à partir de pilotes de classe et envoie des requêtes sous forme de IRP à un pilote de bus.

Un minidriver peut également avoir à communiquer avec plusieurs pilotes de classe. Un exemple de minidriver qui se lie à plusieurs pilotes de classe est un minidriver pour un lecteur CD-ROM sur un bus IEEE 1394. Il peut être lié à un pilote de système de fichiers afin que le lecteur soit accessible à partir du système de fichiers. Toutefois, il est également lié à un pilote système Redbook afin que l’audio puisse être diffusé à partir de CD.

Pilote de bus (générique)

Le pilote de bus (générique) donne aux minidrivers l’accès à un bus physique. La couche d’abstraction matérielle Microsoft Windows (HAL) est parfois appelée pilote de bus système , car elle fournit l’accès au bus système. Pour plus d’informations, consultez Pilotes bus.

Pilote de classe (générique)

Le pilote de classe (générique) implémente un comportement commun entre une classe d’appareils similaires.

Le gestionnaire de classe :

  • Élimine la duplication des fonctionnalités dans les pilotes spécifiques au matériel.

  • N’est pas spécifique au bus.

  • N’est pas conscient des problèmes de ressources (par exemple, DMA et interruptions).

Miniport Driver (WDM Audio)

Le pilote miniport (audio WDM) implémente une interface spécifique pour une fonction sur une carte d’adaptateur audio se trouvant sur un bus système. Un pilote miniport est un composant d’un pilote d’adaptateur. Il n’est pas reconnu comme pilote par le système d’exploitation. À cet égard, un pilote de miniport audio diffère d’un pilote miniport générique.

Contrairement aux pilotes miniport génériques, les pilotes de miniport audio n’implémentent pas DriverEntry, ne sont pas inscrits et ne s’appuient pas entièrement sur leurs pilotes de port respectifs pour la prise en charge. Plusieurs pilotes de miniport audio qui traitent plusieurs fonctions peuvent être liés à un seul pilote d’adaptateur (et associés à un seul objet de périphérique).

Pilote d’adaptateur (WDM Audio)

Le pilote d’adaptateur (audio WDM) sert de conteneur pour tous les pilotes miniport associés à un adaptateur donné. Ce pilote d’adaptateur est reconnu comme pilote par le système d’exploitation et est contenu dans son propre fichier .sys.

Le pilote de carte audio se compose d’un ensemble de pilotes miniport et d’un code supplémentaire qui résout les problèmes d’initialisation. Par exemple, un pilote d’adaptateur implémente le point d’entrée DriverEntry.

Pilote de port (WDM Audio)

Le pilote de port (audio WDM) implémente un filtre KS pour le compte d’un pilote miniport et fonctionne dans le contexte d’un pilote de classe de port. Le pilote de port expose le code spécifique de fonction du pilote miniport en tant que filtre KS au système et est responsable de l’implémentation de fonctionnalités indépendantes de l’adaptateur.

Contrairement au pilote de port générique, le pilote de port audio partage l’objet de périphérique et est, par conséquent, instancié différemment. Un pilote de port audio est également plus proche d’un pilote de classe générique qu’un pilote de port générique dans lequel il implémente le comportement attendu d’une classe d’appareils (il n’est pas indépendant du bus).

Pilote de classe de ports (audio WDM)

Le pilote de classe de port (audio WDM) sert de conteneur pour une collection de pilotes de port, chacun fournissant la prise en charge d’un type différent de fonction matérielle audio. La figure suivante montre les relations entre la classe de port audio et les pilotes d’adaptateur.

Diagramme montrant la relation entre les pilotes de classe de port audio, les pilotes d’adaptateur et leurs pilotes miniport respectifs.

Un pilote d’adaptateur gère une carte d’adaptateur qui peut contenir plusieurs fonctions matérielles différentes. Comme illustré dans la figure précédente, le pilote d’adaptateur contient un pilote miniport pour gérer chaque type de fonction matérielle. De même, le pilote de classe de port est conçu pour prendre en charge les cartes d’adaptateur avec plusieurs fonctions matérielles. Le pilote de classe de port fournit un pilote de port pour chacun des types de fonctions bien définis qu’il prend en charge. Le pilote d’adaptateur lie son pilote miniport pour une fonction particulière au pilote de port correspondant pour ce type de fonction. Le pilote de port pour chaque fonction gère la communication avec les clients audio WDM qui utilisent la fonction. Le pilote miniport contient tout le code spécifique au matériel pour la gestion de cette fonction.

Le pilote de classe de port (audio WDM) fonctionne principalement en tant que conteneur pour plusieurs sous-éléments associés à un seul objet d’appareil. Les pilotes bus créent un seul objet d’appareil physique (PDO) pour chaque nœud Plug-and-Play (PnP) qu’ils énumèrent.

Dans le cas d’une carte audio, un seul nœud PnP contient fréquemment plusieurs fonctions audio. Pour exposer les différentes fonctions associées à un nœud en tant qu’appareils distincts, il est généralement nécessaire d’écrire un pilote de bus pour l’adaptateur. Le pilote de bus énumère les fonctions matérielles et crée des PDP correspondantes. Dans ce scénario, un ou plusieurs pilotes spécifiques à la fonction doivent être liés aux PPO et négocier avec le pilote de bus pour l’accès aux ressources partagées sur l’adaptateur.

Le pilote de classe de port utilise la capacité du pilote de diffusion en continu du noyau à exposer différents aspects d’un objet d’appareil unique afin que le système d’exploitation reconnaisse l’appareil comme un ensemble de sous-éléments distincts.

Une chaîne de référence est ajoutée au nom de l’appareil pour spécifier la sous-ressource souhaitée. Le pilote de diffusion en continu du noyau répartit les IRP de création en fonction de cette chaîne de référence. Une fois un objet de fichier créé, le pilote de streaming du noyau assure l'acheminement des IRPs ciblant l'objet de fichier qui représente le sous-dispositif. En outre, le pilote de classe de port implémente un modèle COM pour l’empaquetage de sous-composants.

Un pilote d’adaptateur instancie un pilote de port et un pilote miniport et les lie ensemble en passant un pointeur vers le pilote miniport en tant que paramètre à la fonction d’initialisation du pilote de port (voir l’exemple de code dans La création de sous-environnement). La pile de pilotes port/miniport résultante constitue un filtre KS qui représente l’un des types de sous-éléments pris en charge par le pilote de classe de port.

La fonction PcRegisterSubdevice du pilote de classe de port inscrit le sous-composant, qui est perçu comme un appareil par le reste du système. Le pilote de port reçoit les IRP de création ciblés sur l'objet du périphérique, mais seulement pour les IRP spécifiés par la chaîne de référence sous laquelle le sous-périphérique est enregistré. Le pilote de port reçoit également les IRPs destinés aux objets de fichier associés au sous-périphérique. Le pilote de port est responsable du comportement du sous-périphérique en tant que filtre KS et de la communication correcte avec le pilote miniport.

Pour plus d’informations sur la conception de pilotes pour les cartes audio multifonction, consultez Appareils audio à fonctions multiples.