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.
As configurações de driver de um dispositivo de áudio podem ser preservadas com frequência nas atualizações do sistema operacional. Após a atualização, o objetivo é manter as configurações do utilizador atualizadas, assegurando ao mesmo tempo que as interfaces de áudio reflitam com precisão as capacidades do sistema operativo e do driver.
Processo de migração de ponto final de áudio
Durante as atualizações do sistema operacional, um processo de migração de ponto final de áudio pode ser executado. Este processo tenta avançar o máximo de informação que seja seguro fazer. Ao desenvolver seu driver de áudio, tenha esses comportamentos de migração em mente.
Esse processo de migração de ponto de extremidade pode ser executado nas seguintes situações.
- Atualização do sistema operacional.
- Atualizações de driver de áudio. Isso inclui a instalação de um driver de extensão de áudio ou um AudioProcessingObject. Para obter mais informações, consulte Criando uma instalação de driver de áudio componentizado.
- O driver de áudio existente é reinstalado no local. Essa reinstalação pode ocorrer quando a solução de problemas de áudio é executada. Isso também pode ocorrer através do gestor de dispositivos, ao fazer uma atualização de driver e selecionando o driver que já está instalado.
- AudioEndpointBuilder é atendido. Isso ocorre sempre que há uma correção de bug no serviço AudioEndpointBuilder que é atualizado em versões lançadas do Windows.
- A revisão de firmware em um driver de áudio USB é alterada.
- O driver de áudio altera a configuração do ponto de extremidade via KSPROPERTY_JACK_DESCRIPTION3.
O processo de migração do ponto final de áudio
O processo de migração do ponto de extremidade de áudio faz o seguinte.
- Copia e transmite as propriedades de ponto de extremidade controladas pelo usuário.
- Copia as propriedades CAPX encaminhadas.
O processo de migração do ponto de extremidade de áudio não realiza nenhuma das ações seguintes.
- Não copia FXProperties antes da disponibilidade do CAPX com o Windows 11.
- Ele não copia para frente Propriedades que não estão na lista de configurações de usuário conhecidas pelo sistema operacional.
A partir do Windows 11, uma nova estrutura de configurações "CAPX" é usada para armazenar configurações. A estrutura de configurações permite que os APOs exponham métodos para consultar e modificar o repositório de propriedades para efeitos de áudio ("FX Property Store") em um ponto de extremidade de áudio. Para obter mais informações, consulte APIs do Windows 11 para objetos de processamento de áudio.
Correspondência dos pontos de extremidade pré-atualização com os pontos de extremidade pós-atualização
O processo de migração faz a correspondência entre os pontos de extremidade de pré-atualização e os pontos de extremidade de pós-atualização usando esses dois elementos.
- ID de hardware - Para obter mais informações sobre a ID de hardware, consulte System-Wide IDs de dispositivo exclusivo.
- String de referência - O uso da string de referência é discutido abaixo.
Observe que, uma vez que novos pontos de extremidade são criados, a cache dos IDs mmdevice não funcionará durante o processo de migração dos pontos de extremidade.
Subdispositivo Registado
A função PcRegisterSubdevice do driver de classe de porta registra o subdispositivo, que é percebido como um dispositivo pelo resto do sistema. A função registra a instância da interface do dispositivo para um objeto de filtro que representa um subdispositivo em um adaptador de áudio. O gerenciador de E/S acrescenta a cadeia de caracteres especificada pelo parâmetro Name à cadeia de caracteres de referência que ele usa para identificar a instância. A cadeia de caracteres de referência modificada é útil para distinguir entre os subdispositivos no adaptador de áudio. Para obter mais informações sobre cadeias de caracteres de referência, consulte IoRegisterDeviceInterface.
Uso da cadeia de caracteres de referência
Os pontos de extremidade de áudio são identificados pela cadeia de referência passada para o PnP quando a interface KS foi criada, juntamente com o ID do pino para o conector externo. Alterar esses valores fará com que um novo ponto de extremidade de áudio seja criado. Este novo ponto de extremidade de áudio não conterá as configurações do usuário associadas à cadeia de referência anterior e ao ID do pino do conector.
Nos casos em que o ID de hardware é o mesmo entre dois ou mais dispositivos de áudio instalados e as cadeias de caracteres de referência também são idênticas, o sistema de migração não poderá migrar as configurações corretamente devido à falha na correspondência dos pontos de extremidade anteriores à migração para os pontos de extremidade após a migração.
A instalação de múltiplas cópias dos mesmos dispositivos de áudio de software com enumeração raiz em todas as versões do Windows, que utilizam a mesma ID de hardware e as mesmas cadeias de referência, não migrará corretamente.
Antes do Windows 11
Para dispositivos de áudio de software enumerados como raiz em sistemas anteriores ao Windows 11, os pontos de extremidade de áudio com os mesmos valores de cadeia de caracteres de referência não serão migrados corretamente.
Ao criar um dispositivo de áudio de software raiz enumerado para versões do Windows anteriores ao Windows 11, é necessário usar um valor exclusivo de cadeia de caracteres de referência para cada ponto de extremidade de áudio, garantindo assim uma migração com sucesso.
Windows 11 e posterior
Dispositivos de áudio de software enumerados na raiz em sistemas a partir do Windows 11, sem identificação de hardware, os pontos de extremidade de áudio com os mesmos valores de cadeia de caracteres de referência não vão migrar corretamente.
Ao criar um dispositivo de áudio de software enumerado raiz destinado a versões do Windows após o Windows 11, uma ID de hardware exclusiva precisa ser especificada no inf do driver e cada dispositivo de áudio de software enumerado raiz só pode ser instalado uma única vez com essa ID de hardware. Para instalar várias cópias do mesmo driver, cadeias de caracteres de referência diferentes devem ser usadas em cada instalação para garantir uma migração bem-sucedida.
Regras de cadeia de caracteres de referência
É altamente recomendável não usar as cadeias de referência padrão "wave" e "topo" que são usadas no(s) driver(es) de amostra de áudio. Em vez disso, devem ser utilizadas cadeias de referência mais descritivas. Os drivers que usam as cadeias de caracteres de referência padrão correm o risco de ter seus dados de migração perdidos ou aplicados ao dispositivo errado no caso de uma ID de hardware não estar disponível ou corresponder a algum outro driver usando essas cadeias de caracteres de referência. Uma estratégia razoável seria algo como "ContosoSoftwareRender-output2". Incluir um nome de fornecedor exclusivo ajuda a desambiguar a cadeia de caracteres de referência.
As cadeias de caracteres de referência devem permanecer estáticas para a instalação do driver de áudio, atualizações, atualizações do sistema operacional, reinicializações, etc. Se a cadeia de caracteres de referência for alterada, um novo ponto de extremidade de áudio será criado e as configurações do usuário não serão copiadas do ponto de extremidade anterior para o novo ponto de extremidade.
Nome da instância do dispositivo de ID de hardware
A ID de hardware do driver de áudio é definida na seção Modelos do arquivo INF. A ID de hardware identifica pelo menos um dispositivo e faz referência à seção DDInstall do arquivo INF desse dispositivo. Ele também especifica um identificador de hardware (ID) exclusivo para a seção de modelo para esse dispositivo. Para obter mais informações, consulte a seção Modelos INF e a seção INF DDInstall.
Este arquivo INF da seção DDInstall mostra a descrição do dispositivo no exemplo de áudio do Sysvad.
[SYSVAD.NT$ARCH$]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA, Root\sysvad_ComponentizedAudioSample
SYSVAD_SA.DeviceDesc="Virtual Audio Device (WDM) - Tablet Sample"
Este arquivo INF mostra como a descrição do dispositivo seria personalizada por um OEM.
[CONTOSO.NT$ARCH$]
%CONTOSO_SA.DeviceDesc%=CONTOSO_SA, Root\contoso_ContosoSoftwareRender
CONTOSO_SA.DeviceDesc="Description of the Contoso Software Render Driver"
A ID de hardware que AudioEndpointBuilder corresponderá seria Root\contoso_ContosoSoftwareRender
Configurações armazenadas do Registro
Um driver de adaptador de áudio pode manter o controle de suas configurações atuais do dispositivo (principalmente níveis de volume e configurações de mudo) no registro do sistema. O driver normalmente armazena essas configurações na chave de driver fornecida pelo sistema (representada pela palavra-chave INF HKR) sob a subchave "Configurações". Quando o usuário altera essas configurações através de um painel de controle ou outro aplicativo de áudio, o driver atualiza as entradas de registro apropriadas. Cada vez que o sistema é inicializado, o driver restaura as configurações do dispositivo a partir do registro.
Os usuários preferem em grande parte esse comportamento porque preserva os ajustes que fizeram no sistema ao longo do tempo, em vez de forçá-los a tentar restaurar suas configurações manualmente cada vez que atualizam o sistema operacional.
Alguns drivers, no entanto, substituem cegamente essas configurações com padrões cada vez que são instalados. Uma abordagem melhor é que um driver determine no momento da instalação se determinadas entradas específicas do driver já existem. Se eles existirem, o driver deve preservar as configurações contidas nessas entradas em vez de substituí-las.
As diretivas na seção add-registry do arquivo INF do driver especificam se as entradas de registro existentes devem ser substituídas. Para obter mais informações, consulte a descrição do sinalizador de FLG_ADDREG_NOCLOBBER na Diretiva INF AddReg.