データ交差ハンドラー
このセクションでは、Microsoft Windows ドライバー モデル (WDM) オーディオ ドライバーのデータ交差ハンドラーについて説明します。 KS フィルターの一般的なデータ交差処理の詳細については、「AVStream の DataRange 交差」を参照してください。
Windows XP などの以前のバージョンの Windows では、SysAudio システム ドライバーは、オーディオ フィルター ピンのペアを接続してオーディオ フィルター グラフを形成することで、仮想オーディオ デバイスを構築します。 あるフィルターのソース ピンを別のフィルターのシンク ピンに接続する前に、SysAudio は、2 つのピンがデータを交換するために使用できる共通の形式をネゴシエートする必要があります。 このネゴシエーションの詳細は、主に個々のフィルターに実装されているデータ交差ハンドラーに委任されます。
同様に、Windows Vista 以降では、オーディオ エンジンは、オーディオ レンダリング デバイスを表すウェーブ フィルターにあるデータ交差ハンドラーと、共通ストリーム形式をネゴシエートする必要があります。
アダプター ドライバーは、ミニポート ドライバーの 1 つを Portcls.sys から対応するポート ドライバーにバインドすることによって、オーディオ デバイスの WaveRT フィルターを作成します。 ポート ドライバーには既定のデータ交差ハンドラーが含まれていますが、この既定のハンドラーは常に、ミニポート ドライバーの独自のデータ交差ハンドラーに、最初に共通形式を決定する機会を与えます。 ただし、独自のハンドラーがこの機会を拒否した場合は、ポート ドライバーの既定のハンドラーによって形式が決定されます。
ポート ドライバーの既定のデータ交差ハンドラーは、最も一般的なハードウェア機能を処理するように設計されています。 単純なオーディオ デバイスの場合、既定のハンドラーは、アダプター ドライバーに独自のハンドラーを実装するための便利な代替手段を提供します。 一方で、より高度な機能を備えたアダプターの場合は、ハードウェアの完全な機能を公開するために独自のハンドラーが必要になる場合があります。
このセクションの残りの部分では、ポート ドライバーの既定のデータ交差ハンドラーの制限事項について説明し、アダプター ドライバーの独自のデータ交差ハンドラーを設計するために必要な手法について説明します。 検討されているトピックは、次のとおりです。