Windows Vista 以降では、ソフトウェア ボリュームのサポートは、物理ボリュームコントロールに関連付けられたアンプを含まないオーディオ ハードウェアに対して提供されます。
次の図は、Windows ソフトウェア ボリュームのサポートの簡略化された表現を示しています。
この図は、2 つの個別のオーディオ データ パスを示しています。 アンプが存在する場合と、Windows APO ソフトウェアボリュームコントロールを使用する場合の 1 つ。 アンプが存在する場合、ドライバはKSPROPERTY_AUDIO_VOLUMELEVELを通知します。 オーディオ ドライバーがKSPROPERTY_AUDIO_VOLUMELEVELをサポートしていることを示していない場合、Windows オーディオ エンジンはソフトウェア ボリューム コントロール APO を作成します。
一般的な PC では、コンピューターにオーディオ コンポーネントのセットが 1 つ存在するため、これらのデータ パスの 1 つだけが存在します。 ここでは、説明のために 2 つのパスを示します。
IAudioEndpointVolume インターフェイスは、オーディオ エンドポイント デバイス間のオーディオ ストリーム上のボリューム コントロールを表します。
Bluetoothまたは USB オーディオが存在する場合、ボリューム コントロールは個別に制御されます。
アンプが存在するデータ パス
クライアント アプリケーションが、アンプと物理ボリューム コントロールが存在する構成で IAudioEndpointVolume インターフェイスを呼び出すと、オーディオ ドライバーはトポロジ フィルターでKSNODETYPE_VOLUME ノードを公開します。 ボリューム ノードが存在すると、 IAudioEndpointVolume はオーディオ信号のボリューム レベルがハードウェアによって変更されることを認識します。
アンプが存在しないデータ パス
アンプが存在しない場合、 IAudioEndpointVolume はオーディオ エンジンと連携して、Windows ソフトウェア ボリューム サポート APO を初期化します。
モデル化する物理ボリューム制御がないため、KSNODETYPE_VOLUME ノードはトポロジ フィルターで公開されません。 ボリュームの減衰とゲインは、APO ソフトウェア ボリューム サポート コンポーネントによって実行されます。
さまざまなバージョンの Windows のボリューム範囲と既定のボリューム レベルについては、「 既定のオーディオ ボリューム設定」を参照してください。