ソフトウェア音量制御のサポート

Windows Vista 以降では、関連する物理ボリューム コントロールを備えたアンプを含まないオーディオ ハードウェアに対してソフトウェア ボリューム サポートが提供されます。

次の図は、Windows ソフトウェア ボリューム サポートを簡略化して示しています。

Diagram showing simplified representation of Windows software volume support with two audio data paths.

この図は、2 つの別個のオーディオ データ パスを示しています。 1 つはアンプが存在する場合、もう 1 つは Windows APO ソフトウェアのボリューム コントロールが使用されている場合です。 アンプが存在する場合、ドライバーは KSPROPERTY_AUDIO_VOLUMELEVEL をアドバタイズします。 オーディオ ドライバーが KSPROPERTY_AUDIO_VOLUMELEVEL をサポートすることを示していない場合、Windows オーディオ エンジンはソフトウェア ボリューム コントロール APO を作成します。

一般的な PC では、通常、コンピュータ内に 1 セットのオーディオ コンポーネントが存在するため、これらのデータ パスは 1 つだけ存在します。 ここでは、説明のために 2 つのパスを示しています。

IAudioEndpointVolume インターフェイスは、オーディオ エンドポイント デバイスとの間のオーディオ ストリームのボリューム コントロールを表します。

Bluetooth または USB オーディオが存在する場合、それらのボリューム コントロールは個別に制御されます。

アンプが存在するデータパス

アンプと物理ボリューム コントロールが存在する構成でクライアント アプリケーションが IAudioEndpointVolume インターフェイスを呼び出すと、オーディオ ドライバーはトポロジ フィルターで KSNODETYPE_VOLUME ノードを公開します。 Volume ノードの存在により、IAudioEndpointVolume はオーディオ信号の音量レベルがハードウェアによって変更されることを認識します。

アンプが存在しないデータ パス

アンプが存在しない場合、IAudioEndpointVolume はオーディオ エンジンと連携して、Windows ソフトウェア ボリューム サポート APO を初期化します。

モデル化される物理ボリューム コントロールがないため、KSNODETYPE_VOLUME ノードはトポロジ フィルターで公開されません。 ボリュームの減衰とゲインは、APO ソフトウェアのボリューム サポート コンポーネントによって実行されます。

Windows のさまざまなバージョンの音量範囲とデフォルトの音量レベルについては、デフォルトのオーディオ音量設定を参照してください。