Compartilhar via


Rotinas DDI de áudio HD

Conforme explicado em Diferenças entre as versões DDI de áudio HD, existem três versões da DDI de áudio HD. Essas três versões DDI são definidas pelas estruturas HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 e HDAUDIO_BUS_INTERFACE_BDL .

As três versões DDI são acessíveis somente no modo kernel.

Cada versão DDI fornece acesso aos recursos de hardware que o controlador de barramento de áudio HD gerencia. Esses recursos incluem codecs, mecanismos de DMA, largura de banda de link, registros de posição de link e um registro de relógio de parede. O driver de barramento de áudio HD implementa a DDI e expõe a DDI para seus filhos. Os filhos são instâncias de drivers de função no modo kernel que usam a DDI para gerenciar os codecs de hardware conectados ao controlador de áudio HD.

Para obter acesso a uma versão DDI, um driver de função deve consultar o driver de barramento de áudio HD para obter um objeto de contexto DDI. Para obter mais informações, consulte Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE, Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE_V2 e Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE_BDL.

Cada rotina nas três versões DDI usa um ponteiro para o objeto de contexto como seu primeiro parâmetro de chamada.

A estrutura HDAUDIO_BUS_INTERFACE define uma DDI que contém as seguintes rotinas:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback

A estrutura HDAUDIO_BUS_INTERFACE_V2 está disponível no Windows Vista e em versões posteriores do Windows e define uma DDI que contém as seguintes rotinas:

AllocateCaptureDmaEngine

AllocateDmaBuffer

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeDmaBuffer

FreeDmaBufferWithNotification

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

RegisterNotificationEvent

SetDmaEngineState

TransferCodecVerbs

UnregisterEventCallback

UnregisterNotificationEvent

A versão HDAUDIO_BUS_INTERFACE da DDI de Áudio HD tem suporte no Windows Vista e em versões posteriores do Windows. Além disso, uma versão do driver de barramento de áudio HD que dá suporte a essa DDI pode ser instalada no Windows 2000, Windows XP e Windows Server 2003.

A estrutura HDAUDIO_BUS_INTERFACE_BDL define uma DDI que contém as seguintes rotinas:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl

TransferCodecVerbs

UnregisterEventCallback

Uma versão do driver de barramento de áudio HD que dá suporte à versão HDAUDIO_BUS_INTERFACE_BDL da DDI de áudio HD pode ser instalada no Windows 2000, Windows XP e Windows Server 2003. No entanto, o Windows Vista não oferece suporte para essa versão DDI.

A maioria das rotinas nos dois DDIs são idênticas no nome e na operação. No entanto, as duas rotinas a seguir, que fazem parte da versão HDAUDIO_BUS_INTERFACE da DDI, não estão incluídas na versão HDAUDIO_BUS_INTERFACE_BDL:

AllocateDmaBuffer

FreeDmaBuffer

Da mesma forma, as três rotinas a seguir na versão HDAUDIO_BUS_INTERFACE_BDL da DDI não fazem parte da versão HDAUDIO_BUS_INTERFACE:

AllocateContiguousDmaBuffer

FreeContiguousDmaBuffer

SetupDmaEngineWithBdl

Esta seção descreve as seguintes rotinas de DDI:

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

ChangeBandwidthAllocation

FreeContiguousDmaBuffer

FreeDmaBuffer

FreeDmaEngine

GetDeviceInformation

GetLinkPositionRegister

GetResourceInformation

GetWallClockRegister

RegisterEventCallback

SetDmaEngineState

SetupDmaEngineWithBdl que funciona com PHDAUDIO_BDL_ISR

TransferCodecVerbs

UnregisterEventCallback

A lista anterior contém todas as rotinas que aparecem em uma ou em ambas as versões da DDI.