Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O HD Audio DDI está disponível em três versões ligeiramente diferentes que são definidas da seguinte forma:
Uma versão de linha de base do HD Audio DDI, que é definido pela estrutura HDAUDIO_BUS_INTERFACE . A maioria dos drivers de função para codecs de áudio e modem necessita apenas das funcionalidades disponibilizadas por esta versão do DDI. Esta versão está disponível por meio dos drivers de barramento HD Audio fornecidos com o Windows XP e Windows Vista.
Uma versão melhorada do HD Audio DDI que é definida pela estrutura HDAUDIO_BUS_INTERFACE_V2 . Esta versão do DDI fornece o recurso adicional necessário para suportar a notificação de eventos orientada por DMA com flexibilidade. Está disponível no Windows Vista e versões posteriores do Windows.
Uma versão modificada do HD Audio DDI que é definido pela estrutura HDAUDIO_BUS_INTERFACE_BDL . Esta versão acomoda os requisitos de relativamente poucos drivers de áudio e modem que devem ter controle adicional sobre a configuração de listas de descritores de buffer (BDLs) para operações DMA. Esta versão do DDI está disponível para Windows XP e versões posteriores do Windows. No entanto, use a versão HDAUDIO_BUS_INTERFACE ou HDAUDIO_BUS_INTERFACE_V2 DDI. .
Nas três estruturas, os nomes e tipos dos cinco primeiros membros correspondem aos dos cinco membros da estrutura INTERFACE . Para obter informações sobre os valores desses membros, consulte Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE, Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE_V2 ou Obtendo um objeto DDI HDAUDIO_BUS_INTERFACE_BDL.
As rotinas nas três versões do HD Audio DDI executam as seguintes tarefas:
Transfira comandos para codecs e recupere as respostas a esses comandos.
Aloque e configure mecanismos DMA para transferir os dados em fluxos de renderização e captura.
Altere o estado do fluxo de um ou mais mecanismos DMA para execução, pausa, parada ou reinicialização.
Reserve a largura de banda do link para fluxos de render e captação.
Forneça acesso direto ao registro do relógio de parede e vincule os registros de posição.
Notifique os clientes sobre respostas não solicitadas de codecs.
Registre eventos do kernel para que eles possam receber notificações de progresso do DMA.
As versões HDAUDIO_BUS_INTERFACE e HDAUDIO_BUS_INTERFACE_BDL do DDI têm as seguintes diferenças:
A estrutura HDAUDIO_BUS_INTERFACE define duas rotinas, AllocateDmaBuffer e FreeDmaBuffer, que não estão presentes no HDAUDIO_BUS_INTERFACE_BDL.
A estrutura HDAUDIO_BUS_INTERFACE_BDL define três rotinas, SetupDmaEngineWithBdl, AllocateContiguousDmaBuffer e FreeContiguousDmaBuffer, que não estão presentes no HDAUDIO_BUS_INTERFACE.
Quando um cliente chama a rotina AllocateDmaBuffer na primeira versão DDI, o driver de barramento HD Audio:
Aloca um buffer DMA e BDL para um mecanismo DMA utilizar.
Inicializa a BDL.
Configura o mecanismo DMA para usar o buffer e a BDL.
Em contraste, a rotina AllocateContiguousDmaBuffer na segunda versão DDI aloca armazenamento para um buffer DMA e BDL, mas depende do chamador para inicializar a BDL. A rotina SetupDmaEngineWithBdl configura o mecanismo DMA para usar o buffer e a BDL inicializada pelo chamador.
A BDL contém a lista de blocos de memória física na fila de dispersão/coleta do mecanismo DMA. Ao chamar SetupDmaEngineWithBdl para configurar a BDL, o cliente pode especificar os pontos no fluxo de dados nos quais o mecanismo DMA gera interrupções. O cliente faz isso definindo o bit de interrupção na conclusão (IOC) em entradas BDL selecionadas. Com esta capacidade, o cliente pode controlar com precisão o tempo das interrupções IOC que ocorrem durante o processamento do fluxo de áudio. Os drivers de modem de áudio também usam a segunda versão DDI para obter informações precisas sobre o relógio do sistema.
Para obter mais informações, consulte a Especificação de áudio de alta definição Intel.
No entanto, quase todos os clientes usarão a versão HDAUDIO_BUS_INTERFACE do DDI. Apenas alguns clientes que exigem controle preciso sobre o tempo de interrupções usarão a versão HDAUDIO_BUS_INTERFACE_BDL.