Sincronizando dois ou mais fluxos
A rotina SetDmaEngineState define o estado de um ou mais mecanismos de DMA como um dos seguintes: executando, pausado, interrompido ou redefinido. Se uma chamada para essa rotina especificar mais de um mecanismo de DMA, todos os mecanismos de DMA farão a transição de estado de forma síncrona.
A capacidade de sincronizar um grupo de fluxos é necessária para alguns aplicativos de áudio. Por exemplo, um driver de áudio pode usar a combinação de codec para criar um dispositivo lógico de áudio surround-sound que une dois codecs de áudio: um codec conduz os alto-falantes frontais e um segundo codec de áudio conduz os alto-falantes traseiros. Dependendo dos recursos dos codecs, o driver de áudio pode ser necessário para dividir o fluxo de áudio de som surround original em dois fluxos, um para cada codec. Usando a rotina SetDmaEngineState para iniciar e parar os fluxos em uníssono, os dois fluxos podem permanecer sincronizados.
Permitir que os dois fluxos fiquem fora da sincronização até mesmo por alguns exemplos pode causar artefatos de áudio indesejáveis.
A rotina SetDmaEngineState está disponível em ambas as versões da DDI de áudio HD.
O driver de classe de áudio HD da UAA não executa a combinação de codec.