SetupPreferredAudioDevices

Ключевое слово SetupPreferredAudioDevices обозначает предпочтительное звуковое устройство, которое является устройством, которое включает звуковая система по умолчанию, если система содержит одно или несколько звуковых устройств. Это ключевое слово относится к классу мультимедиа и поддерживается Microsoft Windows Millennium Edition/Windows 98, Microsoft Windows 2000, Windows XP и Windows Vista. SetupPreferredAudioDevicesis не поддерживается в Windows 7.

При создании звукового устройства программа приложения может выбрать использование устройства по умолчанию (или предпочтительного) вместо явного указания устройства. (For example, see the descriptions of the waveOutOpen and DirectSoundCreate functions in the Microsoft Windows SDK documentation.)

Звуковая система отслеживает текущее предпочтительное звуковое устройство в системном реестре. Когда пользователь обновляет систему, устанавливая новое звуковое устройство, собственный INF-файл, устанавливающий устройство, обычно обновляет реестр, чтобы назначить новое устройство в качестве предпочтительного звукового устройства.

The SetupPreferredAudioDevices keyword can appear within a registry-update directive in the add-registry-section (see INF AddReg Directive) of an INF file for an audio device. Эта директива имеет следующий формат:

reg-rootkey, [reg-subkey]SetupPreferredAudioDevices [flags], [dword-value]

Директива предписывает звуковой системе использовать звуковые функции устройства в качестве значений по умолчанию для воспроизведения звука, записи звука и воспроизведения музыки MIDI. Following installation, these three defaults appear in the Sounds and Multimedia control panel under the Audio tab. The user can use Control Panel to change the default devices.

The directive's dword-value parameter specifies a DWORD value that should be nonzero in order to enable the directive. Если это значение равно нулю, директива не действует. Because Windows Me/98 do not support the REG_DWORD registry data type, however, dword-value is typically expressed as a 4-byte REG_BINARY type instead of as a DWORD (for example, as "01,00,00,00" instead of "0x00000001"). The dword-value parameter can be specified in raw binary format by setting the directive's flags parameter to "1" (FLG_ADDREG_BINVALUETYPE).

Директива вступает в силу во время установки драйвера для устройства. Если другое устройство занимает роль предпочтительного устройства во время установки нового устройства, директива приводит к тому, что новое устройство принимает роль предпочтительного устройства, таким образом переместив другое устройство из этой роли.

При обновлении или переустановке драйвера для уже установленного устройства может потребоваться избежать изменения текущих предпочтительных вариантов устройства пользователя для воспроизведения звука, записи звука и воспроизведения музыки MIDI. If so, set the FLG_ADDREG_NOCLOBBER bit in the flags parameter, which causes the directive to take effect only if this is the device's initial installation.

Пример

Следующий пример является частью INF-файла, в который показано, как использовать ключевое слово SetupPreferredAudioDevices:

  AddReg = XYZ-Audio-Device.AddReg
  ...
  [XYZ-Audio-Device.AddReg]
  HKR,,SetupPreferredAudioDevices,3,01,00,00,00

Директива в конце примера указывает, что устройство с именем XYZ-Audio-Device теперь является предпочтительным звуковым устройством. HKR — это корневой раздел звукового устройства в реестре. The flags parameter is set to 3, which is the bitwise OR of FLG_ADDREG_BINVALUETYPE and FLG_ADDREG_NOCLOBBER. Последнее предотвращает получение перезаписи существующих записей реестра устройств устройства в случае, если устройство уже установлено, и его драйвер просто обновляется. Четыре байта в конце директивы указывают ненулевое значение, которое необходимо для включения директивы.

With the current implementation of the SetupPreferredAudioDevices keyword in Windows Vista, any audio endpoint with its dword-value set to an odd number can be set as the default device. Чтобы убедиться, что правильная конечная точка задана как устройство по умолчанию, убедитесь, что фильтр KS, содержащий соответствующую конечную точку, предоставляется последний раз. Это необходимо сделать из-за алгоритма, используемого службой AudioEndpointBuilder для заполнения хранилищ свойств и настройки устройств по умолчанию.