SetupPreferredAudioDevices

SetupPreferredAudioDevices キーワードは、優先オーディオ デバイスを示します。これは、システムに 1 つ以上のオーディオ デバイスが含まれている場合に、オーディオ システムがデフォルトで有効にするデバイスです。 このキーワードはメディア クラス固有であり、Microsoft Windows Millennium Edition/Windows 98、Microsoft Windows 2000、Windows XP、および Windows Vista でサポートされています。 SetupPreferredAudioDevicesis は Windows 7 ではサポートされていません。

オーディオ デバイスを作成するとき、アプリケーション プログラムは、デバイスを明示的に指定する代わりに、デフォルト (または優先) デバイスの使用を選択できます。 (たとえば、Microsoft Windows SDK ドキュメントの waveOutOpenDirectSoundCreate 関数の説明を参照してください。)

オーディオ システムは、システム レジストリ内の現在の優先オーディオ デバイスを追跡します。 ユーザーが新しいオーディオ デバイスをインストールしてシステムをアップグレードすると、通常、デバイスをインストールする独自の INF ファイルによってレジストリが更新され、新しいデバイスが優先オーディオ デバイスとして指定されます。

SetupPreferredAudioDevices キーワードは、オーディオ デバイスの INF ファイルの add-registry-section (INF AddReg ディレクティブを参照) の registry-update ディレクティブ内に指定できます。 このディレクティブの形式は次のとおりです:

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

このディレクティブは、デバイスのオーディオ機能をサウンド再生、サウンド録音、MIDI 音楽再生のデフォルトとして使用するようにオーディオ システムに指示します。 インストール後、これら 3 つのデフォルトが [サウンドとマルチメディア] コントロール パネルの オーディオ タブに表示されます。ユーザーはコントロール パネルを使用してデフォルトのデバイスを変更できます。

ディレクティブの dword-value パラメーターは、ディレクティブを有効にするためにゼロ以外の DWORD 値を指定します。 この値がゼロの場合、ディレクティブは効果がありません。 ただし、Windows Me/98 は REG_DWORD レジストリ データ型をサポートしていないため、dword-value は通常、DWORD ではなく 4 バイトの REG_BINARY 型として表現されます (たとえば、 "0x00000001")。 Dword-value パラメータは、ディレクティブのフラグ パラメータを「1」(FLG_ADDREG_BINVALUETYPE) に設定することで、生のバイナリ形式で指定できます。

ディレクティブは、デバイスのドライバーがインストールされた時点で有効になります。 新しいデバイスのインストール時に別のデバイスが優先デバイスの役割を占めている場合、ディレクティブにより、新しいデバイスが優先デバイスの役割を引き受けるようになり、他のデバイスがこの役割から置き換えられます。

すでにインストールされているデバイスのドライバーをアップグレードまたは再インストールする場合、サウンドの再生、サウンドの録音、および MIDI 音楽の再生に関してユーザーが現在選択している優先デバイスの選択を変更しないようにしたい場合があります。 その場合は、フラグパラメータに FLG_ADDREG_NOCLOBBER ビットを設定します。これにより、デバイスの初期インストールの場合にのみディレクティブが有効になります。

次の例は、SetupPreferredAudioDevices キーワードの使用方法を示す INF ファイルの一部です:

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

例の最後のディレクティブは、「XYZ-Audio-Device」という名前のデバイスが優先オーディオ デバイスになることを指定しています。 HKR は、レジストリ内のオーディオ デバイスのルート キーです。 フラグ パラメータは、FLG_ADDREG_BINVALUETYPE と FLG_ADDREG_NOCLOBBER のビット単位の OR である 3 に設定されます。 後者は、デバイスがすでにインストールされており、ドライバーが単にアップグレードされているだけの場合に、デバイスの既存の優先デバイス レジストリ エントリが上書きされるのを防ぎます。 ディレクティブの最後の 4 バイトは、ディレクティブを有効にするために必要なゼロ以外の値を指定します。

Windows Vista の SetupPreferredAudioDevices キーワードの現在の実装では、dword-value が奇数に設定されているオーディオ エンドポイントを既定のデバイスとして設定できます。 正しいエンドポイントがデフォルトのデバイスとして設定されていることを確認するには、関連するエンドポイントを含む KS フィルターが最後に公開されていることを確認してください。 AudioEndpointBuilder サービスがプロパティ ストアの設定とデフォルト デバイスの設定に使用するアルゴリズムのため、これを行う必要があります。