Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No Windows 10, você pode escrever um driver de áudio universal que funcionará em muitos tipos de hardware. Este tópico discute os benefícios dessa abordagem, bem como as diferenças entre plataformas. Além dos drivers universais do Windows para áudio, o Windows continua a oferecer suporte a tecnologias de driver de áudio anteriores, como WDM.
Introdução aos drivers universais do Windows para áudio
IHVs podem desenvolver um driver Universal do Windows que funciona em todos os dispositivos (desktops, laptops, tablets, telefones). Isso pode reduzir o tempo de desenvolvimento e o custo para o desenvolvimento inicial e posterior manutenção do código.
Estas ferramentas estão disponíveis para desenvolver drivers universais do Windows:
Visual Studio 2015: Defina "Plataforma de destino" igual a "Universal". Para obter mais informações sobre como configurar o ambiente de desenvolvimento de drivers, consulte documentação do desenvolvedor de hardware do Windows e Criando um driver com o WDK.
APIValidator Tool: Você pode usar a ferramenta ApiValidator.exe para verificar se as APIs chamadas pelo driver são válidas para um driver Universal do Windows. Essa ferramenta faz parte do Kit de Driver do Windows (WDK) para Windows 10 e é executada automaticamente se você estiver usando o Visual Studio 2015. Para obter mais informações, consulte APIValidator.
Documentação de referência DDI: A documentação de referência DDI é atualizada para indicar quais DDIs são suportadas pelos drivers universais do Windows. Para obter mais informações, consulte Referência de Dispositivos de Áudio.
Criar um driver de áudio universal
Para obter orientação passo a passo, consulte a documentação do desenvolvedor de hardware do Windows e o Desenvolvimento de um driver com o WDK. Aqui está um resumo das etapas:
Carregue o exemplo de sysvad de áudio universal para usar como ponto de partida para seu driver de áudio universal. Como alternativa, comece com o modelo de driver WDM vazio e adicione o código do exemplo sysvad universal conforme necessário para seu driver de áudio.
Nas propriedades do projeto, defina a plataforma de destino como "Universal".
Crie um pacote de instalação: se o seu destino for um dispositivo que executa o Windows 10 para edições de área de trabalho (Home, Pro, Enterprise e Education), use um arquivo INF Universal. Se o seu destino for um dispositivo que executa o Windows 10 Mobile, use o PkgGen para gerar um arquivo .spkg.
Crie, instale, implante e depure o driver para as edições de desktop do Windows 10 ou para o Windows 10 Mobile.
Código de exemplo
Sysvad e SwapAPO foram convertidos para serem exemplos de drivers universais do Windows. Para obter mais informações, consulte Drivers de áudio de exemplo.
Interfaces de programação disponíveis para drivers universais do Windows para áudio
A partir do Windows 10, as interfaces de programação de driver fazem parte das edições baseadas em OneCoreUAP do Windows. Usando esse conjunto comum, você pode escrever um driver Universal do Windows. Esses drivers serão executados no Windows 10 para edições de desktop e no Windows 10 Mobile e em outras versões do Windows 10.
Os seguintes DDIs estão disponíveis quando se trabalha com drivers de áudio universais.
Converter um driver de áudio existente em um driver Universal do Windows
Siga este processo para converter um driver de áudio existente em um driver Universal do Windows.
Determine se suas chamadas de driver existentes serão executadas no OneCoreUAP Windows. Verifique a seção de requisitos das páginas de referência. Para obter mais informações, consulte a Referência de Dispositivos de Áudio .
Recompile o driver como um driver Universal do Windows. Nas propriedades do projeto, defina a plataforma de destino como "Universal".
Use a ferramenta ApiValidator.exe para verificar se as DDIs chamadas pelo driver são válidas para um driver Universal do Windows. Essa ferramenta faz parte do Kit de Driver do Windows (WDK) para Windows 10 e é executada automaticamente se você estiver usando o Visual Studio 2015. Para obter mais informações, consulte APIValidator.
Se o driver chama interfaces que não fazem parte do OneCoreUAP, o compilador relata erros.
Substitua essas chamadas por chamadas alternativas, crie uma solução alternativa de código ou escreva um novo driver.
Criando uma instalação de driver de áudio componentizado
Visão geral
Para criar uma experiência de instalação mais suave e confiável e para oferecer melhor suporte à manutenção de componentes, divida o processo de instalação do driver nos seguintes componentes.
- DSP (se estiver presente) e Codec
- APO
- Personalizações OEM
Opcionalmente, arquivos INF separados podem ser usados para o DSP e Codec.
Este diagrama resume uma instalação de áudio componentizada.
Um arquivo INF de extensão separado é usado para personalizar cada componente de driver base para um sistema específico. As personalizações incluem parâmetros de ajuste e outras configurações específicas do sistema. Para obter mais informações, consulte Usando um arquivo de extensão INF.
Um arquivo INF de extensão deve ser um arquivo INF universal. Para obter mais informações, consulte Usando um arquivo INF universal.
Para obter informações sobre como adicionar software usando ficheiros INF, consulte Usando um ficheiro INF de componente e DCH Design Principles and Best Practices.
Enviando arquivos INF componentizados
Os pacotes APO INF devem ser enviados ao Partner Center separadamente do pacote de driver base. Para obter mais informações sobre como criar pacotes, consulte Introdução ao Windows HLK.
Arquivos INF componentizados SYSVAD
Para ver um exemplo de arquivos INF componentizados, examine o sysvad/TabletAudioSample, no GitHub.
| Nome do ficheiro | Descrição |
|---|---|
| ComponentizedAudioSample.inf | O ficheiro INF de amostra de áudio base componentizado. |
| ComponentizedAudioSampleExtension.inf | O driver de extensão para a base sysvad com personalizações OEM adicionais. |
| ComponentizedApoSample.inf | Um arquivo INF de extensão de exemplo APO. |
Os arquivos INF tradicionais continuam disponíveis no exemplo SYSVAD.
| Nome do ficheiro | Descrição |
|---|---|
| tabletaudiosample.inf | Um ficheiro INF monolítico para ambiente de trabalho que contém todas as informações necessárias para instalar o driver. |
Parâmetros de ajuste específicos do fornecedor APO e configuração de funcionalidades
Todas as configurações, parâmetros e valores de ajuste específicos do sistema do fornecedor APO devem ser instalados por meio de um pacote INF de extensão. Em muitos casos, isso pode ser realizado de maneira simples com a diretiva INF AddReg. Em casos mais complexos, um arquivo de ajuste pode ser usado.
Os pacotes de driver base não devem depender dessas personalizações para funcionar (embora, é claro, a funcionalidade possa ser reduzida).
APPs de configurações de áudio UWP
Para implementar uma interface do usuário final, use um HSA (Hardware Support App) para um driver de áudio universal do Windows. Para obter mais informações, consulte a aplicação de suporte de hardware (HSA): Passos para Desenvolvedores de Drivers.
Iniciando programaticamente aplicativos de suporte de hardware UWP
Para iniciar programaticamente uma aplicação de suporte de hardware UWP, com base num evento de controlador (por exemplo, quando um novo dispositivo de áudio é conectado), use as APIs do Shell do Windows. As APIs do Shell do Windows 10 oferecem suporte a um método para iniciar a interface do usuário UWP com base na ativação de recursos ou diretamente por meio IApplicationActivationManager. Você pode encontrar mais detalhes sobre a inicialização automatizada para aplicativos UWP em Automatizar a inicialização de aplicativos UWP do Windows 10.
Uso do APO e do fornecedor de drivers de dispositivo com a API AudioModules
A API/DDI dos módulos de áudio foi projetada para padronizar o transporte de comunicação (mas não o protocolo) para comandos passados entre um aplicativo UWP ou serviço de modo de usuário para um módulo de driver do kernel ou bloco de processamento DSP. Módulos de áudio requerem um driver que implemente o DDI correto para suportar a enumeração e a comunicação de módulos. Os comandos são passados como binários e a interpretação/definição é deixada ao critério do criador.
Atualmente, os módulos de áudio não foram projetados para facilitar a comunicação direta entre um aplicativo UWP e um SW APO em execução no mecanismo de áudio.
Para obter mais informações sobre módulos de áudio, consulte Implementing Audio Module Communication e Configure and query audio device modules.
Construção de cordas APO HWID
Os IDs de hardware APO incorporam informações padrão e cadeias de caracteres definidas pelo fornecedor.
São construídos da seguinte forma:
SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4) &REV_r(4)
SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4)
SWC\VEN_v(4)&AID_a(4)
Onde:
- v(4) é o identificador de 4 caracteres para o fornecedor do dispositivo APO. Isso será gerenciado pela Microsoft.
- a(4) é o identificador composto por 4 caracteres da APO, definido pelo fornecedor da APO.
- n(4) é o identificador PCI SIG de 4 caracteres atribuído ao fornecedor do subsistema para o dispositivo pai. Normalmente, este é o identificador OEM.
- s(4) é o identificador de subsistema de 4 caracteres definido pelo fornecedor para o dispositivo pai. Normalmente, este é o identificador de produto OEM.
Avaliação de versão e data do Plug and Play INF para atualização do driver
O sistema Windows Plug and Play avalia a data e a versão do driver para determinar qual unidade instalar quando existirem vários drivers. Para obter mais informações, consulte Como o Windows classifica os drivers.
Para permitir que o driver mais recente seja usado, certifique-se e atualize a data e a versão, para cada nova versão do driver.
Chave de registo do driver APO
Para chaves de registro de driver de áudio/APO definidas por terceiros, use HKR.
Utilize um serviço do Windows para facilitar a comunicação UWP <-> APO
Um serviço do Windows não é estritamente necessário para o gerenciamento de componentes de modo de usuário, como APOs. No entanto, se o seu design incluir um servidor RPC para facilitar a comunicação UWP <-> APO, recomendamos implementar essa funcionalidade num Serviço do Windows que, em seguida, controla o APO em execução no motor de áudio.
Criando a amostra de áudio universal Sysvad para Windows 10 Desktop
Conclua as etapas a seguir para criar o exemplo sysvad para a área de trabalho do Windows 10.
Localize o ficheiro INF do ambiente de trabalho (tabletaudiosample.inf) e atribua ao nome do fabricante um valor como "Contoso"
No Gerenciador de Soluções, selecione e segure (ou clique com o botão direito do mouse) Solução 'sysvad' e escolha Configuration Manager. Se você estiver implantando em uma versão de 64 bits do Windows, defina a plataforma de destino como x64. Certifique-se de que a configuração e as configurações da plataforma são as mesmas para todos os projetos.
Compile todos os projetos na solução sysvad.
Localizar o diretório de saída no processo de compilação. Por exemplo, ele pode estar localizado em um diretório como este:
C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\packageCopie os seguintes arquivos para o sistema que você deseja instalar o driver sysvad:
| Ficheiro | Descrição |
|---|---|
| TabletAudioSample.sys | O arquivo do driver. |
| tabletaudiosample.inf | Um arquivo de informações (INF) que contém informações necessárias para instalar o driver. |
| sysvad.cat | O arquivo de catálogo. |
| SwapAPO.dll | Extensão de driver de exemplo para uma interface do utilizador para gestão de APOs. |
| KeywordDetectorAdapter.dll | Um detetor de palavras-chave de exemplo. |
Instalar e testar o driver
Siga estes passos para instalar o controlador usando o PnpUtil no sistema de destino.
Abra um prompt de comando como Administrador e digite o seguinte no diretório em que copiou os ficheiros do driver.
pnputil -i -a tabletaudiosample.inf
A instalação do driver sysvad deve ser concluída. Se houver algum erro, você pode examinar este arquivo para obter informações adicionais:
%windir%\inf\setupapi.dev.logNo Gerenciador de dispositivos, no menu Exibir, escolha Dispositivos por tipo. Na árvore de dispositivos, localize Microsoft Virtual Audio Device (WDM) - Sysvad Sample. Isso geralmente ocorre sob o nó Controladores de som, vídeo e jogos.
No computador de destino, abra o Painel de Controle e navegue até Hardware e Som>Gerenciar dispositivos de áudio. Na caixa de diálogo Som, selecione o ícone do alto-falante rotulado como Microsoft Virtual Audio Device (WDM) - Sysvad Sample e, em seguida, selecione Definir padrão, mas não selecione OK. Isso manterá a caixa de diálogo Som aberta.
Localize um MP3 ou outro arquivo de áudio no computador de destino e clique duas vezes para reproduzi-lo. Em seguida, na caixa de diálogo Som, verifique se há atividade no indicador de nível de volume associado ao driver Microsoft Virtual Audio Device (WDM) - Sysvad Sample.