Kernel-Mode componentes de áudio WDM
Os componentes de áudio do WDM (Microsoft Windows Driver Model) no modo kernel são:
WDMAud System Driver
SysAudio System Driver
KMixer System Driver
Driver do Sistema Redbook
SBEmul System Driver
Driver do Sistema SWMidi
Driver do Sistema DMusic
Driver do Sistema AEC
Driver do Sistema DRMK
Driver do sistema de divisor
Driver do Adaptador de Classe de Porta e Driver do Sistema PortCls
Driver do sistema de classe de áudio USB (Usbaudio.sys)
Driver do sistema de classes AVCAudio
WDMAud System Driver
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 é convertido entre chamadas do sistema multimídia Microsoft Windows no modo de usuário e solicitações de E/S de streaming de kernel. O WDMAud executa E/S para as seguintes APIs: waveIn, waveOut, midiIn, midiOut, mixer e aux (descrito na documentação do SDK do Microsoft Windows). O driver WDMAud no modo kernel é um filtro KS (streaming de kernel) e um cliente do driver do sistema SysAudio.
SysAudio System Driver
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 e não 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 conectados para formar o dispositivo de áudio virtual. As seguintes fontes de fluxo de áudio usam os grafos compilados por SysAudio:
DirectSound (consulte SDK do Microsoft Windows documentação.)
As APIs multimídia do Windows waveIn, waveOut, midiIn, midiOut, mixer e aux (consulte a documentação do SDK do Windows.)
Redbook CD digital audio (consulte Redbook System Driver.)
Emulador do Sound Blaster (consulte SBEmul System Driver.)
Sintetizadores de software no modo kernel (consulte Driver do Sistema SWMidi e Driver do Sistema DMusic.)
Driver do Sistema DRMK
KMixer System Driver
O driver do sistema KMixer (Kmixer.sys) é o filtro KS que faz o seguinte:
Combinação de vários fluxos de áudio 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 padrão de volume de áudio.
Driver do Sistema Redbook
O driver do sistema Redbook (Redbook.sys) é o filtro KS que gerencia a renderização de á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 em Painel de Controle).
SBEmul System Driver
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 em 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 Síntese de tabela de ondas GERAL (GM) geral emulada por software e 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 com carimbo de data/hora do driver do sistema WDMAud e gera um fluxo de onda 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 DLS (som emulado por software, de alta qualidade e para download). O driver DMusic é um driver de miniporto de classe de porta fornecido pelo sistema. Ele expõe um único pino 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 onda de PCM para o driver do 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 do 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, confira Gerenciamento de Direitos Digitais.
Driver do sistema de divisor
O driver do sistema divisor (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 do driver de porta/miniport para dar suporte a um dispositivo de áudio. O driver PortCls inclui suporte interno ao driver 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 somente software. Para obter mais informações, consulte Introdução à classe port.
Driver do sistema de classes de áudio USB (Usbaudio.sys)
O driver do sistema de classes USBAudio (Usbaudio.sys) fornece suporte ao driver para dispositivos de áudio USB que estão em conformidade com a Definição de Classe de Dispositivo de Barramento Serial Universal para Dispositivos de Áudio. Para obter mais informações sobre esse driver de sistema de classe, consulte Driver do sistema de classes de áudio USB (Usbaudio.sys).
Driver do sistema de classes AVCAudio
O driver do sistema de classes 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)
Ver especificação geral do conjunto de comandos da interface digital AV/C. 3.0
Especificação de subunidade de áudio AV/C 1.0
Especificação de gerenciamento de conexão e compatibilidade 1.0
Informações e negociação de formato de fluxo de mídia AV/C
Atualizações às Especificações de Subunidade de Áudio AV/C atualmente em processo
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 Plug and Play enumeração de dispositivo, 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 nesta figura são fornecidos pela Microsoft com o sistema operacional.
Para obter mais informações sobre os componentes de driver na figura, consulte as seguintes seções: