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.