SetupPreferredAudioDevices
O palavra-chave SetupPreferredAudioDevices denota o dispositivo de áudio preferencial, que é o dispositivo que o sistema de áudio habilita por padrão quando o sistema contém um ou mais dispositivos de áudio. Este palavra-chave é específico da classe de mídia e tem suporte do Microsoft Windows Millennium Edition/Windows 98, Microsoft Windows 2000, Windows XP e Windows Vista. SetupPreferredAudioDevicesis não tem suporte no Windows 7.
Ao criar um dispositivo de áudio, um programa de aplicativo pode optar por usar o dispositivo padrão (ou preferencial) em vez de especificar explicitamente um dispositivo. (Por exemplo, consulte as descrições das funções waveOutOpen e DirectSoundCreate na documentação do SDK do Microsoft Windows.)
O sistema de áudio controla o dispositivo de áudio preferencial atual no registro do sistema. Quando um usuário atualiza um sistema instalando um novo dispositivo de áudio, o arquivo INF proprietário que instala o dispositivo normalmente atualiza o registro para designar o novo dispositivo como o dispositivo de áudio preferido.
O palavra-chave SetupPreferredAudioDevices pode aparecer em uma diretiva de atualização de registro na seção add-registry (consulte Diretiva AddReg inf) de um arquivo INF para um dispositivo de áudio. Essa diretiva tem o seguinte formato:
reg-rootkey, [reg-subkey]SetupPreferredAudioDevices [flags], [dword-value]
A diretiva instrui o sistema de áudio a usar as funções de áudio do dispositivo como padrão para reprodução de som, gravação de som e reprodução de música MIDI. Após a instalação, esses três padrões aparecem no painel de controle Sons e Multimídia na guia Áudio. O usuário pode usar Painel de Controle para alterar os dispositivos padrão.
O parâmetro dword-value da diretiva especifica um valor DWORD que deve ser diferente de zero para habilitar a diretiva. Se esse valor for zero, a diretiva não terá efeito. Como o Windows Me/98 não dá suporte ao tipo de dados REG_DWORD registro, no entanto, dword-value normalmente é expresso como um tipo de REG_BINARY de 4 bytes em vez de como um DWORD (por exemplo, como "01,00,00,00" em vez de "0x00000001"). O parâmetro dword-value pode ser especificado no formato binário bruto definindo o parâmetro flags da diretiva como "1" (FLG_ADDREG_BINVALUETYPE).
A diretiva entra em vigor no momento em que o driver do dispositivo está instalado. Se outro dispositivo ocupar a função de dispositivo preferencial no momento em que o novo dispositivo estiver instalado, a diretiva fará com que o novo dispositivo assuma a função de dispositivo preferencial, deslocando assim o outro dispositivo dessa função.
Ao atualizar ou reinstalar o driver para um dispositivo que já foi instalado, convém evitar alterar as seleções atuais do dispositivo preferencial do usuário para reprodução de som, gravação de som e reprodução de música MIDI. Nesse caso, defina o bit FLG_ADDREG_NOCLOBBER no parâmetro flags , o que fará com que a diretiva entre em vigor somente se essa for a instalação inicial do dispositivo.
Exemplo
O exemplo a seguir faz parte de um arquivo INF que mostra como usar o palavra-chave SetupPreferredAudioDevices:
AddReg = XYZ-Audio-Device.AddReg
...
[XYZ-Audio-Device.AddReg]
HKR,,SetupPreferredAudioDevices,3,01,00,00,00
A diretiva no final do exemplo especifica que o dispositivo chamado "XYZ-Audio-Device" agora é o dispositivo de áudio preferencial. HKR é a chave raiz do dispositivo de áudio no registro. O parâmetro flags é definido como 3, que é o OR bit a bit de FLG_ADDREG_BINVALUETYPE e FLG_ADDREG_NOCLOBBER. Este último impede que as entradas existentes do registro de dispositivo preferencial do dispositivo sejam substituídas caso o dispositivo já esteja instalado e seu driver esteja apenas sendo atualizado. Os quatro bytes no final da diretiva especificam um valor diferente de zero, que é necessário para habilitar a diretiva.
Com a implementação atual do palavra-chave SetupPreferredAudioDevices no Windows Vista, qualquer ponto de extremidade de áudio com seu dword-value definido como um número ímpar pode ser definido como o dispositivo padrão. Para garantir que o ponto de extremidade correto esteja definido como o dispositivo padrão, verifique se o filtro KS que contém o ponto de extremidade relevante está exposto por último. Você precisa fazer isso devido ao algoritmo que o serviço AudioEndpointBuilder usa para preencher repositórios de propriedades e definir dispositivos padrão.