SetupPreferredAudioDevices
La parola chiave SetupPreferredAudioDevices indica il dispositivo audio preferito, ovvero il dispositivo che il sistema audio abilita per impostazione predefinita quando il sistema contiene uno o più dispositivi audio. Questa parola chiave è specifica della classe multimediale ed è supportata da Microsoft Windows Millennium Edition/Windows 98, Microsoft Windows 2000, Windows XP e Windows Vista. SetupPreferredAudioDevicesis non supportato in Windows 7.
Quando si crea un dispositivo audio, un programma dell'applicazione può scegliere di usare il dispositivo predefinito (o preferito) anziché specificare in modo esplicito un dispositivo. Ad esempio, vedere le descrizioni delle funzioni waveOutOpen e DirectSoundCreate nella documentazione di Microsoft Windows SDK.
Il sistema audio tiene traccia del dispositivo audio preferito corrente nel registro di sistema. Quando un utente aggiorna un sistema installando un nuovo dispositivo audio, il file INF proprietario che installa il dispositivo aggiorna in genere il registro per designare il nuovo dispositivo come dispositivo audio preferito.
La parola chiave SetupPreferredAudioDevices può essere visualizzata all'interno di una direttiva di aggiornamento del Registro di sistema nella sezione add-registry-section (vedere direttiva INF AddReg) di un file INF per un dispositivo audio. Questa direttiva ha il formato seguente:
reg-rootkey, [reg-subkey]SetupPreferredAudioDevices [flags], [dword-value]
La direttiva indica al sistema audio di usare le funzioni audio del dispositivo come impostazione predefinita per la riproduzione audio, la registrazione audio e la riproduzione musicale MIDI. Dopo l'installazione, queste tre impostazioni predefinite vengono visualizzate nel pannello di controllo Suoni e multimediali nella scheda Audio . L'utente può usare il Pannello di controllo per modificare i dispositivi predefiniti.
Il parametro dword-value della direttiva specifica un valore DWORD che deve essere diverso da zero per abilitare la direttiva. Se questo valore è zero, la direttiva non ha alcun effetto. Poiché Windows Me/98 non supporta il tipo di dati del Registro di sistema REG_DWORD, tuttavia, dword-value viene in genere espresso come tipo di REG_BINARY a 4 byte anziché come DWORD (ad esempio, come "01.00.00,00" anziché "0x00000001"). Il parametro dword-value può essere specificato in formato binario non elaborato impostando il parametro flag della direttiva su "1" (FLG_ADDREG_BINVALUETYPE).
La direttiva ha effetto al momento dell'installazione del driver per il dispositivo. Se un altro dispositivo occupa il ruolo del dispositivo preferito al momento dell'installazione del nuovo dispositivo, la direttiva fa sì che il nuovo dispositivo assuma il ruolo del dispositivo preferito, spostando così l'altro dispositivo da questo ruolo.
Quando si aggiorna o reinstalla il driver per un dispositivo già installato, è possibile evitare di modificare le selezioni correnti dei dispositivi preferiti dell'utente per la riproduzione audio, la registrazione audio e la riproduzione di musica MIDI. In tal caso, impostare il bit FLG_ADDREG_NOCLOBBER nel parametro flags , che fa sì che la direttiva venga applicata solo se si tratta dell'installazione iniziale del dispositivo.
Esempio
L'esempio seguente fa parte di un file INF che illustra come usare la parola chiave SetupPreferredAudioDevices:
AddReg = XYZ-Audio-Device.AddReg
...
[XYZ-Audio-Device.AddReg]
HKR,,SetupPreferredAudioDevices,3,01,00,00,00
La direttiva alla fine dell'esempio specifica che il dispositivo denominato "XYZ-Audio-Device" è ora il dispositivo audio preferito. HKR è la chiave radice del dispositivo audio nel Registro di sistema. Il parametro flags è impostato su 3, ovvero l'OR bit per bit di FLG_ADDREG_BINVALUETYPE e FLG_ADDREG_NOCLOBBER. Quest'ultimo impedisce che le voci del Registro di sistema preferite del dispositivo esistenti vengano sovrascritte nel caso in cui il dispositivo sia già installato e che il relativo driver venga semplicemente aggiornato. I quattro byte alla fine della direttiva specificano un valore diverso da zero, necessario per abilitare la direttiva.
Con l'implementazione corrente della parola chiave SetupPreferredAudioDevices in Windows Vista, qualsiasi endpoint audio con valore dword impostato su un numero dispari può essere impostato come dispositivo predefinito. Per assicurarsi che l'endpoint corretto sia impostato come dispositivo predefinito, assicurarsi che il filtro KS che contiene l'endpoint pertinente sia esposto per ultimo. È necessario eseguire questa operazione a causa dell'algoritmo usato dal servizio AudioEndpointBuilder per popolare gli archivi delle proprietà e impostare i dispositivi predefiniti.