オーディオ フィルター
KS フィルターはカーネル オブジェクトであり、カーネル オブジェクト ハンドルによって識別されます。 次の図では、中央の大きなボックスはオーディオ デバイスを表す KS フィルターです。 データ ストリームは、左側からフィルターに流れ込み、処理のためにいくつかのノードを通過し、右側のフィルターを終了します。 フィルターはフィルター ファクトリによって作成されます。フィルターファクトリは、フィルターの下部に破線のエッジが付いたボックスとして表示されます。
図では、フィルターで 2 つのピンがインスタンス化されています。 左側のピンはデータ シンクで、右側のピンはデータ ソースです。 データはシンク ピンを介してフィルターに流れ込み、ソース ピンを介してフィルターから流出します。
慣例により、KS でのソースとシンクという用語の使用は、バッファー中心 (または、より一般的には接続中心) です。 データ バッファーは、あるフィルター上のソース ピンが別のフィルターのシンク ピンに接続される時点で頻繁に必要になります。 バッファーは、ソース ピンからデータが到着し、シンク ピンに出る速度の不規則性を平滑化します。 (もちろん、すべての接続でバッファリングが必要なわけではありません。バッファーレス接続は、シンクとソースのデータ レートがより簡単に一致する場合など、同じアダプター カード上の 2 つのデバイス間で発生する可能性があります)。
これに対し、ミキサー API の SRC および DST (送信元と送信先) ミキサー ラインの用語は、デバイス中心です。
ストリームは、SRC ミキサー ラインを介してミキサー デバイスに入ります。
ストリームは、SRC ミキサー ラインを介してミキサー デバイスを終了します。
つまり、SRC ミキサー ラインは KS フィルターのデータシンク ピンにマップされ、DST ミキサー ラインはデータソース ピンにマップされます。 詳しくは、「カーネル ストリーミング トポロジからオーディオ ミキサー API への変換」を参照してください。
わかりやすくするために、この図では、ピン インスタンスを作成するフィルターのピン ファクトリを省略しています。
ピンとフィルターは、データ シンクとデータ ソースであることに加えて、IRP シンクと IRP ソースにすることもできます。 ピンとフィルターが IRP を受信できるだけでなく、IRP も送信できます。 図の 3 つの暗い矢印は IRP を表します。 図の左側のピンは IRP シンクです。 右側のピンは IRP ソースです。 図は、フィルター オブジェクト自体に送信されている IRP も示しています。