データ交差ハンドラー

このセクションでは、Microsoft Windows ドライバー モデル (WDM) オーディオ ドライバーのデータ交差ハンドラーについて説明します。 KS フィルターの一般的なデータ交差処理の詳細については、「AVStream の DataRange 交差」を参照してください。

Windows XP などの以前のバージョンの Windows では、SysAudio システム ドライバーは、オーディオ フィルター ピンのペアを接続してオーディオ フィルター グラフを形成することで、仮想オーディオ デバイスを構築します。 あるフィルターのソース ピンを別のフィルターのシンク ピンに接続する前に、SysAudio は、2 つのピンがデータを交換するために使用できる共通の形式をネゴシエートする必要があります。 このネゴシエーションの詳細は、主に個々のフィルターに実装されているデータ交差ハンドラーに委任されます。

同様に、Windows Vista 以降では、オーディオ エンジンは、オーディオ レンダリング デバイスを表すウェーブ フィルターにあるデータ交差ハンドラーと、共通ストリーム形式をネゴシエートする必要があります。

アダプター ドライバーは、ミニポート ドライバーの 1 つを Portcls.sys から対応するポート ドライバーにバインドすることによって、オーディオ デバイスの WaveRT フィルターを作成します。 ポート ドライバーには既定のデータ交差ハンドラーが含まれていますが、この既定のハンドラーは常に、ミニポート ドライバーの独自のデータ交差ハンドラーに、最初に共通形式を決定する機会を与えます。 ただし、独自のハンドラーがこの機会を拒否した場合は、ポート ドライバーの既定のハンドラーによって形式が決定されます。

ポート ドライバーの既定のデータ交差ハンドラーは、最も一般的なハードウェア機能を処理するように設計されています。 単純なオーディオ デバイスの場合、既定のハンドラーは、アダプター ドライバーに独自のハンドラーを実装するための便利な代替手段を提供します。 一方で、より高度な機能を備えたアダプターの場合は、ハードウェアの完全な機能を公開するために独自のハンドラーが必要になる場合があります。

このセクションの残りの部分では、ポート ドライバーの既定のデータ交差ハンドラーの制限事項について説明し、アダプター ドライバーの独自のデータ交差ハンドラーを設計するために必要な手法について説明します。 検討されているトピックは、次のとおりです。

データ交差

既定のデータ交差ハンドラー

独自のデータ交差ハンドラー

サンプル周波数に対するハードウェアの制約

出力バッファー サイズ

離散値を含むデータ範囲

ワイルド カード

データ範囲のプロパティ