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.
Hd Audio DDI está disponible en tres versiones ligeramente diferentes que se definen como se indica a continuación:
Una versión de línea de base del DDI de audio HD, que se define mediante la estructura HDAUDIO_BUS_INTERFACE . La mayoría de los controladores de funciones para los códecs de audio y módem solo requieren las funcionalidades que proporciona esta versión DDI. Esta versión está disponible a través de los controladores de hd Audio Bus que se proporcionan con Windows XP y Windows Vista.
Una versión mejorada de la DDI de audio HD definida por la estructura HDAUDIO_BUS_INTERFACE_V2 . Esta versión de DDI proporciona la funcionalidad adicional necesaria para admitir notificaciones de eventos controladas por DMA con flexibilidad. Está disponible en Windows Vista y versiones posteriores de Windows.
Una versión modificada de la DDI de audio HD definida por la estructura HDAUDIO_BUS_INTERFACE_BDL . Esta versión admite los requisitos de algunos controladores de audio y módem que deben tener control adicional sobre la configuración de listas de descriptores de búfer (BDL) para las operaciones DMA. Esta versión de DDI está disponible para Windows XP y versiones posteriores de Windows. Sin embargo, use el HDAUDIO_BUS_INTERFACE o la versión de DDI de HDAUDIO_BUS_INTERFACE_V2 en su lugar. .
En las tres estructuras, los nombres y los tipos de los cinco primeros miembros coinciden con los de los cinco miembros de la estructura INTERFACE . Para obtener información sobre los valores de estos miembros, vea Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE, Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE_V2 o Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE_BDL.
Las rutinas de las tres versiones de HD Audio DDI realizan las tareas siguientes:
Transfiera comandos a códecs y recupere las respuestas a esos comandos.
Asigne y configure motores DMA para transferir los datos en secuencias de representación y captura.
Cambie el estado de flujo de uno o varios motores DMA a ejecutar, pausar, detener o restablecer.
Reserve el ancho de banda del enlace para los flujos de renderización y captura.
Proporcione acceso directo al registro del reloj y a los registros de posición del enlace.
Notificar a los clientes las respuestas no solicitadas de los códecs.
Registre eventos de kernel para que puedan recibir notificaciones de progreso de DMA.
Las versiones HDAUDIO_BUS_INTERFACE y HDAUDIO_BUS_INTERFACE_BDL de DDI tienen las siguientes diferencias:
La estructura HDAUDIO_BUS_INTERFACE define dos rutinas, AllocateDmaBuffer y FreeDmaBuffer, que no están presentes en HDAUDIO_BUS_INTERFACE_BDL.
La estructura HDAUDIO_BUS_INTERFACE_BDL define tres rutinas, SetupDmaEngineWithBdl, AllocateContiguousDmaBuffer y FreeContiguousDmaBuffer, que no están presentes en HDAUDIO_BUS_INTERFACE.
Cuando un cliente llama a la rutina AllocateDmaBuffer en la primera versión de DDI, el controlador del bus de audio HD:
Asigna un búfer DMA y un BDL para que lo utilice un controlador DMA.
Inicializa BDL.
Configura el motor DMA para usar el búfer y el BDL.
Por el contrario, la rutina AllocateContiguousDmaBuffer en la segunda versión de DDI asigna almacenamiento para un búfer de DMA y BDL, pero se basa en el autor de la llamada para inicializar el BDL. La rutina SetupDmaEngineWithBdl configura el motor DMA para usar el búfer y el BDL inicializado por el autor de la llamada.
El BDL contiene la lista de bloques de memoria física en la cola de dispersión/recolección del motor de DMA. Al llamar a SetupDmaEngineWithBdl para configurar el BDL, el cliente puede especificar los puntos del flujo de datos en el que el motor DMA genera interrupciones. El cliente logra esto configurando el bit de interrupción al completar (IOC) en las entradas BDL seleccionadas. Con esta funcionalidad, el cliente puede controlar con precisión el tiempo de las interrupciones del IOC que se producen durante el procesamiento de la secuencia de audio. Los controladores de módem de audio también usan la segunda versión DDI para obtener información precisa del reloj del sistema.
Para obtener más información, consulte especificación de audio de alta definición de Intel.
Sin embargo, casi todos los clientes usarán la versión HDAUDIO_BUS_INTERFACE de DDI. Solo algunos clientes que requieren un control preciso sobre el tiempo de las interrupciones usarán la versión de HDAUDIO_BUS_INTERFACE_BDL.