Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un dispositivo multifunción puede contener dos o más subdispositivos de audio. Por ejemplo, un controlador de adaptador podría permitir que un dispositivo de audio de ocho canales se exponga al sistema como cuatro canales estéreo. Al escribir un controlador de adaptador para exponer varios subdispositivos de esta manera, debe incorporar información sobre los subdispositivos en la secuencia de inicio del controlador y el archivo INF.
En primer lugar, el controlador del adaptador debe exponer cada subdispositivo estéreo como una instancia independiente de un par de controladores de puerto/miniport durante la secuencia de inicio. Varios de los adaptadores de ejemplo del Kit de controladores de Microsoft Windows (WDK) implementan una InstallSubdevice función que crea y registra un subdispositivo que consta de un controlador de puerto del sistema, un controlador de minipuerto y un conjunto de recursos que se van a enlazar a este par. Durante el inicio, el controlador debe llamar a su InstallSubdevice función una vez para cada subdispositivo estéreo y especificar un nombre único para cada par de controladores de puerto/miniport.
Además, el nombre único que asigne a este par debe coincidir con la cadena KSNAME que especifique en el archivo INF del controlador. Por ejemplo, el controlador podría asignar los nombres "Wave1" y "Wave2" a dos subdispositivos durante el inicio, como se muestra a continuación:
InstallSubdevice(..., "Wave1",...);
InstallSubdevice(..., "Wave2",...);
En este caso, los mismos nombres deben aparecer en el archivo INF:
KSNAME_Wave1="Wave1"
KSNAME_Wave2="Wave2"
El archivo INF debe agregar interfaces que contengan estos nombres:
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave1%,Test.Interface.Wave1
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave2%,Test.Interface.Wave2
El archivo INF debe crear secciones AddReg (consulte Directiva ADDReg de INF) para agregar información sobre estas interfaces al Registro:
[Test.Interface.Wave1]
AddReg=Test.I.Wave1.AddReg
[Test.Interface.Wave2]
AddReg=Test.I.Wave2.AddReg
Las secciones AddReg también deben especificar las entradas del Registro para cada subdispositivo:
[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%
Por último, el archivo INF debe definir los nombres amistosos para estos subdispositivos:
Test.Wave1.szName="Punch"
Test.Wave2.szName="Judy"
Los nombres amigables aparecen en el panel de control de audio para identificar los subdispositivos.