Partager via


Sous-appareils audio multiples

Un appareil multifonction peut contenir au moins deux sous-appareils audio. Par exemple, un pilote d’adaptateur peut permettre à un périphérique audio à huit canaux d’être exposé au système sous la forme de quatre canaux stéréo. Lorsque vous écrivez un pilote d’adaptateur pour exposer plusieurs sous-appareils de cette façon, vous devez incorporer des informations sur les sous-appareils dans la séquence de démarrage et le fichier INF de votre pilote.

Tout d’abord, votre pilote d’adaptateur doit exposer chaque sous-appareil stéréo sous la forme d’un instance distinct d’une paire de pilotes port/miniport pendant la séquence de démarrage. Plusieurs des exemples d’adaptateurs du Kit de pilotes Microsoft Windows (WDK) implémentent une InstallSubdevice fonction qui crée et enregistre un sous-appareil composé d’un pilote de port système, d’un pilote miniport et d’un ensemble de ressources qui doivent être liées à cette paire. Au démarrage, votre pilote doit appeler sa InstallSubdevice fonction une fois pour chaque sous-appareil stéréo et spécifier un nom unique pour chaque paire de pilotes port/miniport.

En outre, le nom unique que vous attribuez à cette paire doit correspondre à la chaîne KSNAME que vous spécifiez dans le fichier INF de votre pilote. Par exemple, votre pilote peut affecter les noms « Wave1 » et « Wave2 » à deux sous-appareils lors du démarrage, comme indiqué ci-dessous :

  InstallSubdevice(..., "Wave1",...);
  InstallSubdevice(..., "Wave2",...);

Dans ce cas, les mêmes noms doivent apparaître dans le fichier INF :

  KSNAME_Wave1="Wave1"
  KSNAME_Wave2="Wave2"

Votre fichier INF doit ajouter des interfaces qui contiennent ces noms :

  AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave1%,Test.Interface.Wave1
  AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave2%,Test.Interface.Wave2

Le fichier INF doit créer des sections AddReg (voir Directive Inf AddReg) afin d’ajouter des informations sur ces interfaces au Registre :

  [Test.Interface.Wave1]
  AddReg=Test.I.Wave1.AddReg

  [Test.Interface.Wave2]
  AddReg=Test.I.Wave2.AddReg

Les sections AddReg doivent également spécifier les entrées de Registre pour chaque sous-appareil :

  [Test.I.Wave1.AddReg]
  HKR,,CLSID,,%Proxy.CLSID%
  HKR,,FriendlyName,,%Test.Wave1.szName%

  [Test.I.Wave2.AddReg]
  HKR,,CLSID,,%Proxy.CLSID%
  HKR,,FriendlyName,,%Test.Wave2.szName%

Enfin, le fichier INF doit définir les noms conviviaux pour ces sous-appareils :

  Test.Wave1.szName="Punch"
  Test.Wave2.szName="Judy"

Les noms conviviaux s’affichent dans le panneau de configuration audio pour identifier les sous-appareils.