ベンダーは、Stream クラス インターフェイス (ファイル Stream.sys に実装されているカーネル ストリーミング 1.0) または AVStream インターフェイス (ファイル Ks.sys に実装されているカーネル ストリーミング 2.0 ) を使用する WDM ドライバーとしてピア または仮想サブユニット ドライバーを記述する必要があります。 ストリーム クラス インターフェイスは廃止され、Microsoft はそれ以降の開発を中止しているため、AVStream は推奨されるインターフェイスです。
いずれかのインターフェイスを使用するサブユニット ドライバーは、同じ AV/C ユニット内でも共存できます。 たとえば、サブユニット ドライバーが AVStream を使用する場合、サブユニット ドライバーは、サブユニットのピン記述子とフィルター記述子に対応する静的構造体をレイアウトします。 その後、サブユニット ドライバーは KsInitializeDriver AVStream 関数を呼び出して AVStream に登録します。 両方のインターフェイスで使用される概念の詳細については、「 カーネル ストリーミング」を参照してください。 AVStream について詳しくは、「 AVStream の概要」をご覧ください。 Stream クラスの詳細については、「ストリーミング ミニドライバー」を参照してください。
どちらのカーネル ストリーミング インターフェイスでも、アプリケーションがサブユニット ドライバーを操作および制御するために使用するのと同じ標準メカニズムが提供されます。 アプリケーション レベルで AV/C サブユニットを制御するには、Microsoft DirectShow フィルターとフィルター グラフを使用することをお勧めします。 DirectShow のカーネル ストリーミング (KS) プロキシ メカニズムは、サブユニットのプロパティを表す標準的な方法と、サブユニットがトリガーする可能性があるイベントを表す標準的な方法を可能にする汎用フィルター (ksproxy.ax) を提供します。 AV/C サブユニット ドライバーで関連する KS プロパティとイベントをサポートするために必要なコードを実装します。 サブユニット プロパティの表現の詳細については、「 カーネル ストリーミング プロパティ セット」を参照してください。 サブユニット イベントの表現の詳細については、「 カーネル ストリーミング イベント セット」を参照してください。
KS プロキシ フィルターは、Microsoft またはベンダーが提供するプロキシ プラグインで拡張できます。 KS プロキシ フィルターを拡張すると、COM インターフェイスは KS プロパティとイベント セットの低レベルの詳細を非表示にすることができます。 デバイスの INF ファイルのサブユニット ドライバーにプラグインを関連付けます。
プロパティとイベント セットに直接アクセスする一般的な方法は引き続き使用できます。 IAMExtTransport インターフェイス (テープ サブユニットに使用) は、プロキシ プラグインに実装されるインターフェイスの例です。 プラグインには、デバイスを制御するためのユーザー インターフェイスを提供するプロパティ ページを含めることもできます。 これらのプロパティ ページは、一般に、エンド ユーザーのデバイス操作ではなく、テスト目的で使用されます。 GraphEdit ユーティリティまたは AMCap ユーティリティを使用して、プラグインの KS プロパティをテストできます。 これらのユーティリティは、WDK と Windows SDK の両方に含まれています。