Drivers Universais do Windows para Áudio - Windows drivers (2023)

  • Artigo

Em Windows 10 você pode escrever um driver de áudio universal que funcionará em vários 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 dar suporte a tecnologias de driver de áudio anteriores, como o WDM.

Introdução com drivers Universais do Windows para Áudio

Os IHVs podem desenvolver um driver Universal do Windows que funciona em todos os dispositivos (desktops, laptops, tablets, telefones). Isso pode reduzir o tempo e o custo de desenvolvimento para o desenvolvimento inicial e a manutenção posterior do código.

Essas 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 driver, consulte Introdução com Drivers Universais do Windows.

  • Ferramenta APIValidator: você pode usar a ferramenta ApiValidator.exe para verificar se as APIs que seu driver chama são válidas para um driver Universal do Windows. Essa ferramenta faz parte do WDK (Kit de Driver do Windows) para Windows 10 e é executada automaticamente se você estiver usando o Visual Studio 2015. Para obter mais informações, consulte Validando drivers universais do Windows.

  • Documentação de referência da DDI: a documentação de referência da DDI é atualizada para indicar quais DDIs têm suporte de drivers Universais do Windows. Para obter mais informações, consulte Referência de dispositivos de áudio.

Criar um driver de áudio universal

Para obter diretrizes passo a passo, consulte Introdução com Drivers Universais do Windows. Aqui está um resumo das etapas:

  1. Carregue o exemplo de sysvad de áudio universal a ser usado como ponto de partida para o driver de áudio universal. Como alternativa, comece com o modelo de driver WDM vazio e adicione o código do exemplo de sysvad universal conforme necessário para o driver de áudio.

  2. Nas propriedades do projeto, defina Plataforma de Destino como "Universal".

  3. Criar um pacote de instalação: se o seu destino for o dispositivo que executa Windows 10 para edições de desktop (Home, Pro, Enterprise e Education), use um arquivo INF configurável. Se o seu destino estiver executando Windows 10 Mobile, use PkgGen para gerar um arquivo .spkg.

  4. Compile, instale, implante e depure o driver para Windows 10 para edições da área de trabalho ou Windows 10 Mobile.

Exemplo de código

Sysvad e SwapAPO foram convertidos para serem exemplos de driver Universal 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 em Windows 10 para edições desktop e Windows 10 Mobile e outras versões Windows 10.

Os DDIs a seguir para estão disponíveis ao trabalhar com drivers de áudio universais.

  • Conjuntos de eventos de drivers de áudio

  • Interfaces de drivers de áudio

  • Conjuntos de propriedades de drivers de áudio

  • Estruturas de drivers de áudio

  • Nós de topologia de áudio

  • Referência de DDI de áudio de alta definição

  • Referência do driver de áudio da classe de porta

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.

  1. Determine se as 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 Referência de dispositivos de áudio.

  2. Recompile o driver como um driver Universal do Windows. Nas propriedades do projeto, defina Plataforma de Destino como "Universal".

  3. Use a ferramenta ApiValidator.exe para verificar se os DDIs que o driver chama são válidos para um driver Universal do Windows. Essa ferramenta faz parte do WDK (Kit de Driver do Windows) para Windows 10 e é executada automaticamente se você estiver usando o Visual Studio 2015. Para obter mais informações, consulte Validando drivers universais do Windows.

  4. Se o driver chamar interfaces que não fazem parte do OneCoreUAP, o compilador relatará erros.

  5. Substitua essas chamadas por chamadas alternativas ou crie uma solução alternativa de código ou escreva um novo driver.

Criando uma instalação de driver de áudio com componentes

Visão geral

Para criar uma experiência de instalação mais suave e confiável e dar melhor suporte à manutenção de componentes, divida o processo de instalação do driver nos componentes a seguir.

  • DSP (se presente) e Codec
  • APO
  • Personalizações de OEM

Opcionalmente, arquivos INF separados podem ser usados para o DSP e o Codec.

Este diagrama resume uma instalação de áudio com componentes.

Drivers Universais do Windows para Áudio - Windows drivers (1)

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 INF de extensão.

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 arquivos INF, consulte Using a Component INF File and DCH Design Principles and Best Practices ( Usando um arquivo INF de componente e princípios de design de DCH e práticas recomendadas).

Enviando arquivos INF componentes

Os pacotes INF do APO devem ser enviados ao Partner Center separadamente do pacote de driver base. Para obter mais informações sobre como criar pacotes, consulte Windows HLK Introdução.

Arquivos INF componentes do SYSVAD

Para ver um exemplo de arquivos INF com componentes, examine o sysvad/TabletAudioSample, no Github.

Nome do arquivoDescrição
ComponentizedAudioSample.infO arquivo INF de áudio de exemplo com componentes básicos.
ComponentizedAudioSampleExtension.infO driver de extensão para a base sysvad com personalizações OEM adicionais.
ComponentizedApoSample.infUm arquivo INF de extensão de exemplo do APO.

Os arquivos INF tradicionais continuam disponíveis no exemplo SYSVAD.

Nome do arquivoDescrição
tabletaudiosample.infUm arquivo INF monolítico da área de trabalho que contém todas as informações necessárias para instalar o driver.

Configuração de recursos e parâmetros de ajuste específicos do fornecedor do APO

Todas as configurações, parâmetros e valores de ajuste específicos do sistema do fornecedor do APO devem ser instalados por meio de um pacote INF de extensão. Em muitos casos, isso pode ser executado 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, naturalmente, a funcionalidade possa ser reduzida).

APPs de configurações de áudio UWP

Para implementar uma interface do usuário final, use um HSA (Aplicativo de Suporte de Hardware) para um driver de Áudio Universal do Windows. Para obter mais informações, consulte HSA (Aplicativo de Suporte de Hardware): etapas para desenvolvedores de driver.

Iniciar programaticamente aplicativos de suporte de hardware UWP

Para iniciar programaticamente um aplicativo de suporte de hardware UWP, com base em um evento de driver (por exemplo, quando um novo dispositivo de áudio está conectado), use as APIs do Shell do Windows. As APIs do shell Windows 10 dão suporte a um método para iniciar a interface do usuário UWP com base na ativação de recursos ou diretamente por meio de IApplicationActivationManager. Você pode encontrar mais detalhes sobre a inicialização automatizada para aplicativos UWP em Automatizar a inicialização Windows 10 aplicativos UWP.

Uso do APO e do fornecedor do driver de dispositivo da 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 um serviço de modo de usuário para um módulo de driver de kernel ou bloco de processamento DSP. Os Módulos de Áudio exigem um driver que implemente a DDI correta para dar suporte à enumeração e comunicação do módulo. Os comandos são passados como binários e a interpretação/definição é deixada para o 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 Implementando a comunicação do módulo de áudio e configurar e consultar módulos de dispositivos de áudio.

Construção de cadeias de caracteres HWID do APO

As IDs de Hardware do APO incorporam as informações padrão e as cadeias de caracteres definidas pelo fornecedor.

Eles são construídos da seguinte maneira:

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)

Em que:

  • v(4) é o identificador de 4 caracteres para o fornecedor do dispositivo APO. Isso será gerenciado pela Microsoft.
  • a(4) é o identificador de 4 caracteres para o APO, definido pelo fornecedor do APO.
  • n(4) é o identificador atribuído pelo PCI SIG de 4 caracteres para o fornecedor do subsistema para o dispositivo pai. Normalmente, esse é o identificador OEM.
  • s(4) é o identificador de subsistema definido pelo fornecedor de 4 caracteres para o dispositivo pai. Normalmente, esse é o identificador de produto OEM.

Plug and Play avaliação de versão e data do INF para atualização do driver

O sistema do Windows Plug and Play avalia a data e a versão do driver para determinar qual unidade instalar quando houver vários drivers. Para obter mais informações, consulte Como o Windows classifica 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 do Registro do driver do APO

Para chaves de registro do APO/driver de áudio definidas por terceiros, use HKR.

Usar um Serviço windows para facilitar a comunicação UWP <–> APO

Um Serviço windows não é estritamente necessário para o gerenciamento de componentes do modo de usuário, como APOs. No entanto, se o design incluir um servidor RPC para facilitar a comunicação UWP <–> APO, recomendamos implementar essa funcionalidade em um Serviço windows que controla o APO em execução no mecanismo de áudio.

Criando o exemplo de áudio universal do Sysvad para Windows 10 Desktop

Conclua as etapas a seguir para criar o exemplo sysvad para Windows 10 área de trabalho.

  1. Localize o arquivo inf da área de trabalho (tabletaudiosample.inf) e defina o nome do fabricante como um valor como "Contoso"

  2. Em 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. Verifique se as configurações e as configurações da plataforma são as mesmas para todos os projetos.

  3. Crie todos os projetos na solução sysvad.

  4. Localize o diretório de saída para o build do build. Por exemplo, ele pode estar localizado em um diretório como este:

    C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\package
  5. Copie os seguintes arquivos para o sistema que você deseja instalar o driver sysvad:

ArquivoDescrição
TabletAudioSample.sysO arquivo de driver.
tabletaudiosample.infUm arquivo inf (informações) que contém informações necessárias para instalar o driver.
sysvad.catO arquivo de catálogo.
SwapAPO.dllUma extensão de driver de exemplo para uma interface do usuário gerenciar APOs.
KeywordDetectorAdapter.dllUm detector de palavra-chave de exemplo.

Instalar e testar o driver

Siga estas etapas para instalar o driver usando o PnpUtil no sistema de destino.

  1. Abra e o prompt de comando administrador e digite o seguinte no diretório para o qual você copiou os arquivos de driver.

    pnputil -i -a tabletaudiosample.inf

  2. A instalação do driver sysvad deve ser concluída. Se houver erros, você poderá examinar esse arquivo para obter informações adicionais: %windir%\inf\setupapi.dev.log

  3. Em Gerenciador de Dispositivos, no menu Exibir, escolha Dispositivos por tipo. Na árvore de dispositivos, localize o WDM (Dispositivo de Áudio Virtual) da Microsoft – Exemplo de Sysvad. Normalmente, isso está sob o nó Controladores de som, vídeo e jogo.

  4. No computador de destino, abra 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 Dispositivo de Áudio Virtual da Microsoft (WDM) – Exemplo de Sysvad e, em seguida, selecione Definir Padrão, mas não selecione OK. Isso manterá a caixa de diálogo Som aberta.

  5. 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 WDM (Dispositivo de Áudio Virtual) da Microsoft – Sysvad Sample.

Top Articles
Latest Posts
Article information

Author: Duncan Muller

Last Updated: 03/10/2023

Views: 6383

Rating: 4.9 / 5 (59 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.