Compartir a través de


Rutinas de DDI de audio HD

Como se explica en Diferencias entre las versiones DDI de audio HD, existen tres versiones de DDI de audio HD. Estas tres versiones de DDI se definen mediante las estructuras de HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 y HDAUDIO_BUS_INTERFACE_BDL .

Las tres versiones de DDI solo son accesibles en modo kernel.

Cada versión de DDI proporciona acceso a los recursos de hardware que administra el controlador de bus de audio HD. Estos recursos incluyen códecs, motores DMA, ancho de banda de vínculo, registros de posición de vínculo y registro de reloj. El controlador de bus de audio HD implementa el DDI y expone el DDI a sus elementos secundarios. Los elementos secundarios son instancias de controladores de funciones en modo kernel que usan DDI para administrar los códecs de hardware que están conectados al controlador de audio HD.

Para obtener acceso a una versión DDI, un controlador de función debe consultar el controlador de bus de audio HD para un objeto de contexto DDI. Para obtener más información, vea Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE, Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE_V2 y Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE_BDL.

Cada rutina de las tres versiones DDI toma un puntero al objeto de contexto como su primer parámetro de llamada.

La estructura HDAUDIO_BUS_INTERFACE define una DDI que contiene las siguientes rutinas:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

TransferCodecVerbs

Anular el registroEventCallback

La estructura de HDAUDIO_BUS_INTERFACE_V2 está disponible en Windows Vista y versiones posteriores de Windows, y define una DDI que contiene las siguientes rutinas:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaBufferWithNotification

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

RegisterNotificationEvent

SetDmaEngineState

TransferCodecVerbs

Anular el registroEventCallback

UnregisterNotificationEvent

La versión HDAUDIO_BUS_INTERFACE de la DDI de audio HD se admite en Windows Vista y versiones posteriores de Windows. Además, se puede instalar una versión del controlador de bus de audio HD que admita esta DDI en Windows 2000, Windows XP y Windows Server 2003.

La estructura HDAUDIO_BUS_INTERFACE_BDL define una DDI que contiene las siguientes rutinas:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl

TransferCodecVerbs

Anular el registroEventCallback

En Windows 2000, Windows XP y Windows Server 2003, se puede instalar una versión del controlador de bus de audio HD que admite la versión HDAUDIO_BUS_INTERFACE_BDL de HD Audio DDI. Sin embargo, Windows Vista no proporciona compatibilidad con esta versión de DDI.

La mayoría de las rutinas de los dos DDIs son idénticas tanto en el nombre como en la operación. Sin embargo, las dos rutinas siguientes, que forman parte de la versión HDAUDIO_BUS_INTERFACE de la DDI, no se incluyen en la versión de HDAUDIO_BUS_INTERFACE_BDL:

AllocateDmaBuffer

FreeDmaBuffer

Del mismo modo, las tres rutinas siguientes en la versión HDAUDIO_BUS_INTERFACE_BDL de DDI no forman parte de la versión de HDAUDIO_BUS_INTERFACE:

AllocateContiguousDmaBuffer

FreeContiguousDmaBuffer

SetupDmaEngineWithBdl

En esta sección se describen las siguientes rutinas de DDI:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl , que funciona con PHDAUDIO_BDL_ISR

TransferCodecVerbs

Anular el registroEventCallback

La lista anterior contiene todas las rutinas que aparecen en o en ambas versiones de DDI.