KS のミニドライバー アーキテクチャ
カーネル ストリーミング サービスは、ストリーミング データのカーネルモード処理をサポートします。 このモデルでは、ストリーミング データは、フィルターと呼ばれるブロックにグループ化された一連のノードを介します。 各フィルターは、データに対して実行される処理タスクをカプセル化します。 KS フィルターは、カーネルモードの DRIVER_OBJECT として実装されます。
KS フィルターは、ユーザー モードで DirectShow フィルターとしてプロキシを介して表示されます。 そのため、グラフ ビルダーとユーザーモード アプリケーションは KS フィルターと対話操作できます。 アクティブなグラフでは、カーネルモード コンポーネントは引き続き直接通信するため、ユーザーモードとカーネルモードの間のリソース消費の遷移はなくなります。
データは、ピンと呼ばれる接続ポイントでフィルターの送受信を行います。 ピン インスタンスは、デジタル オーディオなどのデータ ストリームをレンダリングまたはキャプチャします。
フィルター グラフは、接続されたフィルターのグループです。 フィルター グラフは、ストリームで実行される複数の処理タスクをリンクします。 Microsoft Windows Driver Kit (WDK) の GraphEdit ツールを使用して、さまざまなフィルター グラフ構成をテストできます。 詳細については、Filter Graph Editor ツールの Web サイトを参照してください。
オンボード クロックをサポートするドライバーは、クロックをファイル オブジェクトとして公開します。 ミニドライバーは、クロック時間のクエリを実行したり、クロックが特定の時刻に達したときに通知を受け取ったりすることもできます。
カスタム メモリ管理インターフェイスをサポートするミニドライバーは、このインターフェイスをアロケーターと呼ばれるファイル オブジェクトとして公開します。 たとえば、オンボード メモリを処理するデバイス マネージャーは、このようなインターフェイスを公開する可能性があります。 ミニドライバーは、関連するファイル オブジェクトを使用してメモリの割り当てと割り当てを解除できます。
このセクションでは、次のトピックについて追加の情報を説明します。