Administración de topologías dinámicas
Un adaptador de audio contiene cierto número de subdispositivos para el mantenimiento de dispositivos de audio externos, como altavoces y micrófonos, que el usuario conecta a los conectores de audio frontal o trasero del adaptador. Cada subdispositivo ofrece un conector de audio determinado o un grupo de conectores.
El controlador de audio describe cada subdispositivo mediante la presentación de una topología que es básicamente un mapa de las conexiones internas y los elementos de procesamiento dentro del subdispositivo. Los módulos de la API de Windows proporcionados por el sistema y las aplicaciones de panel de control proporcionados por el proveedor usan la información de topología para determinar las funcionalidades del subdispositivo e identificar sus puntos de control internos. Para obtener más información, vea Exponer topología de filtro.
Los controladores de audio WDM que se desarrollaron antes de que las interfaces IUnregisterSubdevice e IUnregisterPhysicalConnection estuvieran disponibles tienen principalmente topologías estáticas. Para estos controladores, después de que el controlador del adaptador cree un objeto de controlador de minipuerto para administrar un subdispositivo, ese objeto y su subdispositivo asociado persisten durante la vigencia del objeto de controlador del adaptador.
Sin embargo, en un adaptador de audio configurable dinámicamente, el controlador del adaptador puede crear y eliminar subdispositivos en tiempo de ejecución para reflejar los cambios en la configuración de hardware, ya que el usuario conecta dispositivos externos a conectores de audio y los quita. Este comportamiento permite que los subdispositivos funcionen como funciones de hardware independientes lógicamente. En otras palabras, cada subdispositivo se puede encender, configurar y apagar independientemente de los demás subdispositivos.
Cada subdispositivo tiene una topología interna que consta de lo siguiente:
Rutas de acceso de datos a través del subdispositivo.
Los nodos de topología (por ejemplo, el control de volumen) que procesan los flujos de datos que fluyen a lo largo de las rutas de acceso de datos.
Las conexiones físicas del subdevice a otros subdispositivos del mismo adaptador.
Cuando un controlador de adaptador quita dinámicamente un subdispositivo, libera los recursos de hardware que están enlazados a la topología interna del subdispositivo. A continuación, el controlador del adaptador puede usar estos recursos para crear un nuevo subdispositivo con una topología posiblemente diferente.
Al configurar un nuevo subdispositivo de audio, el controlador del adaptador registra la interfaz de controlador del subdispositivo como una instancia de una o varias clases de interfaz de dispositivo, y el administrador de E/S agrega una o varias entradas del Registro que contienen vínculos simbólicos que asocian las clases de interfaz e instancias de interfaz. Para acceder al subdispositivo, un cliente en modo de usuario recupera el vínculo simbólico del Registro y lo pasa como un parámetro de llamada a la función CreateFile . Normalmente, el cliente es un módulo de api de Windows, como Dsound.dll o Wdmaud.drv, o un panel de control o un programa de utilidad de audio proporcionados por el proveedor. Para obtener más información sobre CreateFile, consulte la documentación de Microsoft Windows SDK.
Cuando el controlador de miniporte llama al método IUnregisterSubdevice::UnregisterSubdevice para quitar un subdevice, el controlador del sistema PortCls (Portcls.sys) indica al administrador de E/S que quite el vínculo simbólico de la interfaz de dispositivo asociada del registro. Los componentes registrados para los eventos de eliminación de la interfaz de dispositivo reciben una notificación cuando se quita la interfaz.
El adaptador de audio puede contener circuitos de presencia de jack para notificar al controlador de minipuerto cuando se inserta o se quita un enchufe de un conector de audio. Cuando el usuario inserta un enchufe en una toma de audio, el controlador del adaptador agrega la interfaz de dispositivo del subdevice asociado al registro. Cuando el usuario quita un enchufe de una toma de audio, el controlador del adaptador quita la interfaz de dispositivo correspondiente del registro.
Los adaptadores de audio que admiten topologías dinámicas tienen las siguientes ventajas:
Fácil de usar
A menos que los altavoces de escritorio, los auriculares y otros dispositivos de audio externos se conecten realmente a conectores de audio en los paneles delanteros o traseros del adaptador de audio, el sistema no presenta estos dispositivos a las aplicaciones de audio como disponibles para su uso.
Eficiente de energía
Cuando el usuario quita un enchufe de un conector de audio, el controlador puede apagar la parte del circuito de adaptador que atiende ese conector.
Configurable
Después de quitar un subdispositivo, el controlador puede usar los recursos de hardware que estaban enlazados a la topología interna del subdispositivo para crear un nuevo subdispositivo con una topología posiblemente diferente.