Compartilhar via


componentes de áudio do WDM Kernel-Mode

Os componentes de áudio do WDM (Microsoft Windows Driver Model) no modo kernel são:

Driver do sistema WDMAud

Driver do Sistema SysAudio

Driver do sistema KMixer

Driver do sistema Redbook

Driver do Sistema SBEmul

Driver do sistema SWMidi

Driver do sistema DMusic

Driver do Sistema AEC

Driver do sistema DRMK

Driver do sistema divisor

Driver do Adaptador de Classe de Porta e Driver do Sistema PortCls

Driver de sistema de classe de áudio USB (Usbaudio.sys)

Driver do sistema de classe AVCAudio

Driver do sistema WDMAud

O driver do sistema WDMAud no modo kernel (Wdmaud.sys) é emparelhado com o driver do sistema WDMAud no modo de usuário (Wdmaud.drv). O par de drivers WDMAud faz a tradução entre as chamadas do sistema multimídia Microsoft Windows em modo usuário e as solicitações de E/S transmitidas pelo kernel. O WDMAud executa E/S para as seguintes APIs: waveIn, waveOut, midiIn, midiOut, mixer e aux (descritos na documentação do SDK do Microsoft Windows). O driver WDMAud no modo núcleo é um filtro KS (streaming de núcleo) e um cliente do driver do sistema SysAudio.

Driver do Sistema SysAudio

O driver do sistema SysAudio (Sysaudio.sys) cria os grafos de filtro que renderizam e capturam conteúdo de áudio. O driver SysAudio representa grafos de filtro de áudio como dispositivos de áudio virtual e registra cada dispositivo de áudio virtual como uma instância de uma interface de dispositivo KSCATEGORY_AUDIO_DEVICE. (Os drivers do adaptador não devem se registrar nessa categoria, que é reservada exclusivamente para SysAudio.) Por exemplo, um dispositivo MIDI virtual pode representar um grafo de filtro criado conectando o driver SWMidi, o driver KMixer e um driver de porta/miniport. O cliente se comunica apenas com o dispositivo de áudio virtual em vez de com os dispositivos individuais que compõem o dispositivo de áudio virtual. Transparente para o cliente, o driver SysAudio configura todos os filtros KS no grafo de filtro que são conectados juntos para formar o dispositivo de áudio virtual. As seguintes fontes de fluxo de áudio usam os grafos compilados pelo SysAudio:

  • DirectSound (consulte a documentação do SDK do Microsoft Windows.)

  • APIs multimídia do Windows waveIn, waveOut, midiIn, midiOut, mixer e aux (consulte a documentação do SDK do Windows.)

  • Áudio digital do CD Redbook (consulte o Driver do Sistema Redbook.)

  • Emulador Sound Blaster (consulte o driver de sistema SBEmul.)

  • Sintetizadores de software no modo kernel (Consulte o Driver do Sistema SWMidi e o Driver do Sistema DMusic.)

  • Driver do sistema DRMK

Driver do sistema KMixer

O driver do sistema KMixer (Kmixer.sys) é o filtro KS que faz o seguinte:

  • Combinação de vários fluxos de áudio do PCM

  • Conversão de formato de alta qualidade

  • Conversão de profundidade de bit

  • Configuração do locutor e mapeamento de canal

Além dos formatos de dados simples de 8 e 16 bits, mono e estéreo, o driver KMixer dá suporte a:

  • Dados de ponto flutuante PCM e IEEE

  • Profundidades de bits maiores que 16 bits e formatos multicanais com mais de dois canais

  • Processamento 3D da função de transferência relacionada à cabeça (HRTF)

Para obter informações sobre os intervalos de volume e os níveis de volume padrão nas várias versões do Windows, consulte Configurações de Volume de Áudio Padrão.

Driver do sistema Redbook

O driver do sistema Redbook (Redbook.sys) é o filtro KS que gerencia a renderização do áudio digital de CD. O driver Redbook é um cliente do driver do sistema SysAudio. O sistema roteia o áudio digital de CD por meio do sistema de arquivos para o driver redbook e, em seguida, para o driver SysAudio. O áudio digital de CD é renderizado no dispositivo de saída de onda preferencial (conforme definido nas páginas de propriedades multimídia no Painel de Controle).

Driver do Sistema SBEmul

O driver do sistema SBEmul (Sbemul.sys) fornece emulação do Sound Blaster para aplicativos MS-DOS. O driver SBEmul é um cliente do driver do sistema SysAudio. Para renderizar e capturar conteúdo, o driver SysAudio usa a onda preferencial e os dispositivos MIDI (conforme definido nas páginas de propriedades multimídia no Painel de Controle).

A emulação do Sound Blaster tem suporte apenas no Windows 98/Me.

Driver do sistema SWMidi

O driver do sistema SWMidi (Swmidi.sys) é o filtro KS que fornece a emulação por software de General MIDI (GM) e síntese de tablatura de onda Roland GS de alta qualidade. Um aplicativo midiOutXxx usa SWMidi quando um sintetizador de hardware não está disponível. O filtro SWMidi recebe como entrada um fluxo MIDI carimbado com data e hora do driver do sistema WDMAud e gera um fluxo de PCM para o driver do sistema KMixer. SWMidi mistura todas as suas vozes internamente para formar um único fluxo de saída de dois canais com um formato de onda PCM.

Driver do sistema DMusic

O driver do sistema DMusic (Dmusic.sys) é o filtro KS que dá suporte à síntese de DLS (som emulado por software, de alta qualidade e para download). O DMusic é um miniport driver da classe de porta fornecido pelo sistema. Ele expõe um único pin DirectMusic, que dá suporte a um intervalo de dados de fluxo DirectMusic. O filtro DMusic recebe como entrada um fluxo MIDI com carimbo de data/hora do componente do sistema DirectMusic e gera um fluxo de áudio PCM para o driver de sistema KMixer. O driver DMusic mistura todas as suas vozes internamente para formar um único fluxo de saída de dois canais com um formato de onda PCM. Um aplicativo DirectMusic deve selecionar explicitamente o sintetizador de software no modo kernel, Dmusic.sys, para usá-lo no lugar do sintetizador padrão de modo de usuário do DirectMusic.

Driver do Sistema AEC

O driver do sistema AEC (Aec.sys) dá suporte a aplicativos DirectSound full-duplex implementando a AEC (cancelamento de eco acústico) e algoritmos de supressão de ruído no software. Para obter mais informações, consulte Efeitos de Captura do DirectSound.

Driver do sistema DRMK

O driver do sistema DRMK (Drmk.sys) é o filtro KS que descriptografa fluxos de áudio que contêm conteúdo protegido por DRM. Para obter mais informações, consulte Gerenciamento de direitos digitais.

Driver do sistema de divisor

O driver do sistema Splitter (Splitter.sys) é o filtro KS que cria dois ou mais fluxos de saída de um único fluxo de captura de entrada. O driver Splitter copia de forma transparente o fluxo de entrada para mais dois fluxos de saída independentemente do formato do fluxo de entrada.

O driver Splitter tem suporte do Microsoft Windows XP e posterior. Para obter mais informações, consulte AVStream Splitters.

Driver do Adaptador de Classe de Porta e Driver do Sistema PortCls

Um driver de adaptador de classe de porta usa a arquitetura de driver de porta/miniport para dar suporte a um dispositivo de áudio. O driver PortCls inclui suporte interno a drivers para dispositivos de áudio ISA e PCI. Embora o driver do sistema PortCls (Portcls.sys) também forneça a estrutura para drivers de adaptador de classe de porta fornecidos pelo fornecedor, a Microsoft recomenda que os fornecedores usem um driver de adaptador de classe de porta fornecido pelo sistema para dar suporte a dispositivos de áudio ISA e PCI. A estrutura PortCls também pode ser útil para construir drivers para dispositivos de áudio em outros barramentos de hardware ou para dispositivos puramente de software. Para obter mais informações, consulte Introdução à Classe de Porta.

Driver do sistema de classe de áudio USB (Usbaudio.sys)

O driver de sistema da classe USBAudio (Usbaudio.sys) fornece suporte para dispositivos de áudio USB que estão em conformidade com a definição da classe de dispositivos USB para dispositivos de áudio. Para obter mais informações sobre esse driver de sistema de classe, consulte o Driver do Sistema de Classe de Áudio USB (Usbaudio.sys).

Driver do sistema de classe AVCAudio

O driver de sistema de classe AVCAudio (Avcaudio.sys) é um minidriver AVStream que fornece suporte ao driver para dispositivos de áudio que residem em um barramento IEEE 1394. O driver AVCAudio e o suporte associado para dispositivos de áudio IEEE 1394 estão disponíveis no Windows XP e posterior.

Para trabalhar com os drivers fornecidos pelo sistema, os fornecedores de hardware devem projetar seus dispositivos de áudio para cumprir as seções apropriadas das seguintes especificações:

  • IEC 61883-1 e IEC 61883-6 (IEC 60958)

  • Conjunto de Comandos da Interface Digital AV/C Especificação Geral Versão 3.0

  • Especificação 1.0 da Subunidade de Áudio AV/C

  • Especificação de gerenciamento de conexão e compatibilidade 1.0

  • Informações e negociação do formato de fluxo de mídia AV/C

  • Atualizações nas Especificações de Subunidade de Áudio AV/C em andamento

Essas especificações são descritas no site da Página Wiki do IEEE 1394 . O driver AVCAudio dá suporte a um subconjunto dos recursos descritos nessas especificações.

Quando um dispositivo de áudio se identifica como um dispositivo de áudio compatível com IEEE 1394 durante a enumeração do dispositivo Plug and Play, o sistema carrega automaticamente o driver AVCAudio para conduzir o dispositivo. O AVCAudio conduz o dispositivo diretamente, sem o auxílio de um driver de adaptador proprietário. Isso significa que um dispositivo que está em conformidade com as especificações apropriadas do IEEE 1394 não requer nenhum driver de adaptador proprietário.

A Microsoft recomenda que os fornecedores de hardware usem o driver AVCAudio para seus dispositivos de áudio IEEE 1394 em vez de escrever drivers de adaptador proprietários.

A figura a seguir mostra a hierarquia de driver de um dispositivo de áudio IEEE 1394 no Windows XP. No Windows XP e posterior, todos os componentes de driver mostrados nessa figura são fornecidos pela Microsoft com o sistema operacional.

Diagrama mostrando a hierarquia de driver de um dispositivo de áudio IEEE 1394 no Windows XP.

Para obter mais informações sobre os componentes de driver na figura, consulte as seguintes seções:

Visão geral do AVStream

Drivers de cliente AV/C

Barramento IEEE 1394