Audio MDD and PDD
9/8/2008
Como um alternativo para usar o Unified Audio Model (UAM) ou implementando a interface transmitir diretamente, você pode usar a biblioteca driver de dispositivo (MDD) modelo, Wavemdd.lib, fornecida pelo Microsoft. Essa biblioteca implementa as funções interface transmitir através de áudio driver de dispositivo serviço-provedor funções interface (DDSI).
Se você usar Wavemdd.lib, você deve criar um compatível plataforma-dependente biblioteca driver (PDD) que implementa o áudio funções DDSI. A biblioteca PDD é geralmente chamado Wavepdd.lib, embora não seja exigido. Essas duas bibliotecas, em seguida, podem ser vinculadas a forma seu áudio driver, normalmente nomeado Wavedev.dll.
Oferece suporte a hardware de áudio geralmente um maior conjunto de operações daqueles que geralmente aplicar aos arquivos. Para exemplo, os arquivos não têm controles volume ou reprodução controles velocidade, mas áudio hardware geralmente faz.
O DeviceIOControl parte da interface de transmitir permite arbitrárias operações em arquivos, tornando possível manipular áudio hardware usando o WAV_IOControl função. Para enviar comandos para o áudio hardware, passa a OS vários mensagens para WAV_IOControl. De exemplo, para preparar o áudio hardware para gravação, usa a middleware WAV_IOControl Para enviar a mensagem WIDM_PREPARE para o áudio driver.
As mensagens enviadas para o áudio driver são semelhantes aos usados pelo usuário-modo áudio drivers no área de trabalho Windows-Based OSs, such as Mmdrv.dll.
Porque áudio drivers confiam totalmente na DeviceIOControl função mensagens, a implementação do restante da interface de transmitir é relativamente simples. Especificamente, o WAV_Read, WAV_Seek, e WAV_Write funções são simplesmente stubs constante que retornam valores.
As outras funções interface transmitir devem ser totalmente implementadas e seguem as convenções descritas o Windows Embedded CE Referência API Para essas funções.
A seguinte ilustração mostra a interação do áudio driver usando a biblioteca MDD.
Como mostrado na ilustração, a primeira etapa em reproduzir e gravar sons é criar um chamar de um aplicativo para o OS. O OS converte essas chamadas em WAV_IOControl Chamadas para o áudio driver. A tecnologia OS que realiza essa tradução é a Wave API Manager. O áudio driver, em seguida, executa o apropriado ações de hardware.
O Device Manager somente carrega e registra o áudio driver; Ele não é diretamente envolvido na operação do driver.
Como padrão transmitir interface drivers, o áudio driver usa Registro chaves dois para armazenar informações configuração e para anunciar próprio para o OS.
Se o áudio driver não estiver já listado em Platform.reg, crie um HKEY_LOCAL_MACHINE\Drivers\Builtin\Audio chave Registro para armazenar informações configuração.
O Device Manager cria uma HKEY_LOCAL_MACHINE\Drivers\Active chave do Registro para o áudio driver quando o driver é carregado na inicialização. Porque o Device Manager verifica somente áudio drivers na inicialização, drivers de áudio complementar hardware ainda precisará ter suas entradas Registro in a \Builtin\Audio Parte de Registro, embora seu hardware não seja compilado em um executar baseado em Windows Embedded CE-imagem tempo.
Para obter informações sobre o modelo driver-loading para PCI-Based drivers, consulte Processo ao carregar driver de barramento PCI.
A seguinte lista mostra as funções interface transmitir para o áudio driver:
- WAV_Close
- WAV_Deinit
- WAV_Init
- WAV_IOControl
- WAV_Open
- WAV_PowerDown
- WAV_PowerUp
- WAV_Read
- WAV_Seek
- WAV_Write
Para obter mais informações sobre essas funções, consulte Funções de driver de áudio em formato wave. Para obter mais informações sobre como transmitir interface drivers, consulte Fluxo de Interface do Driver Development conceitos.
A seguinte lista mostra as funções DDSI para o áudio driver:
- PDD_AudioDeinitialize
- PDD_AudioGetInterruptType
- PDD_AudioInitialize
- PDD_AudioMessage
- PDD_AudioPowerHandler
- PDD_WaveProc
Para obter mais informações sobre essas funções, consulte Funções de áudio PDD.
See Also
Concepts
Stream Interface Driver Development Concepts