Partilhar via


Considerações sobre topologia do KS

O driver do sistema WDMAud (Wdmaud.sys) converte a topologia de filtro KS nas linhas de mixer herdadas expostas por meio da API do mixer . Um pino não PCM corresponde a uma linha SRC (MIXERLINE_COMPONENTTYPE_SRC_XXX) na API do mixer. Se esse pino estiver em um caminho de dados que eventualmente flui para um pino de ponte (a conexão física no ponto de extremidade de um grafo) que é dedicado a dados não PCM, a API do mixer expõe o pino de ponte como uma linha DST adicional (MIXERLINE_COMPONENTTYPE_DST_XXX), separada da linha DST para dados PCM. Isso pode adicionar complexidade desnecessária aos controles visíveis por meio de um cliente mixer-API, como uma substituição para o utilitário SndVol32.

Se você preferir não expor um pino não PCM dessa maneira, uma abordagem é verificar se o caminho de dados que contém o pino eventualmente alimenta um nó SUM que é compartilhado pelo caminho de dados do PCM. Ou seja, una a linha DST não PCM à linha DST main. Infelizmente, essa solução alternativa deturpa a verdadeira topologia de hardware e pode levar a problemas futuros com clientes que tentam controlar o fluxo de dados não PCM por meio de nós downstream do nó SUM. Uma abordagem melhor é modificar o cliente mixer-API para simplesmente ignorar linhas SRC e DST que não têm controles.

Se você usar o utilitário KsStudio para exibir o filtro de onda em KSCATEGORY_AUDIO, deverá esperar ver um pino separado para dados não PCM. Ao exibir o grafo de áudio do sistema composto em KSCATEGORY_AUDIO_DEVICE, você deverá ver seus intervalos de dados não PCM no pino de saída de onda main, juntamente com quaisquer intervalos de dados pcm.

SysAudio (Sysaudio.sys) é o dispositivo de áudio do sistema no Windows Server 2003, Windows XP, Windows 2000 e Windows Me/98. Observe que o SysAudio gera KSCATEGORY_AUDIO_DEVICE automaticamente– um driver não deve se registrar manualmente nessa categoria.

Não é necessário conectar um caminho de dados não PCM ao driver de miniporta de topologia. Essa conexão só será beneficiada se o caminho de dados não PCM interagir com o restante da topologia do dispositivo; por exemplo, se ele se alimenta de um mixer comum ou conversor de taxa de amostragem. Conectar um pino de streaming a um pino de ponte, em que ambos os pinos estão no driver de miniporto de onda, forma uma topologia válida e completa para um fluxo de dados não PCM que flui diretamente para uma porta S/PDIF, por exemplo.