KS のプロパティ、イベント、メソッド
カーネル ストリーミング アーキテクチャでは、プロパティ、イベント、メソッドを介したミニドライバーとユーザーモード クライアント間の対話式操作がサポートされています。 これらのコンストラクトを使用すると、KS オブジェクトのクライアントは、オブジェクトの状態の取得と設定、イベントの通知コールバックの登録、およびオブジェクト メソッドの実行を行うことができます。
クライアントは、標準化された方法で 3 つの操作クラスをすべて要求します。 クライアントは、DeviceIoControl (Microsoft Windows SDK ドキュメントで説明) または KsSynchronousDeviceControl の呼び出しで KSIDENTIFIER のエイリアス構造を提供します。
エイリアス構造体は KSPROPERTY、KSEVENT、KSMETHOD です。 これら 3 つすべてに、次のパラメーターが含まれます。
Set
機能的に類似した操作は、セット内でグループ化されます。 各プロパティ、イベント、またはメソッド セットは GUID によって識別されます。 Microsoft では、標準的なテクノロジ固有の操作用の GUID を定義しています。 ミニドライバーは、カスタム操作用に独自の GUID を定義できます。
識別子
各操作は、セット内の ID 番号で指定されます。
操作固有の識別データ
特定のプロパティ要求には、追加のデータが必要です。 たとえば、オーディオ デバイス上のピンは、KSPROPSETID_Audio プロパティ セットをサポートします。 オーディオ ピンは、複数の異なるオーディオ チャンネルをサポートしている場合があります。 特定の KSPROPSETID_Audio プロパティを取得または設定するクライアントは、要求が適用されるオーディオ チャンネルを指定する必要があります。 イベント要求とメソッド要求では、追加のデータは必要ありません。
汎用操作用の Microsoft が定義したセット GUID と識別子は、ヘッダー ks.h にあります。 マルチメディア テクノロジの特定のクラスの標準 GUID と識別子は ksmedia.h にあります。
AVStream ミニドライバーは、関連する KSFILTER_DESCRIPTOR または KSPIN_DESCRIPTOR_EX 内の KSAUTOMATION_TABLE 構造体へのポインターを提供することで、プロパティ、イベント、およびメソッドをサポートします。 KSAUTOMATION_TABLEには、KSPROPERTY_SET オブジェクトの配列へのポインターが含まれています。 詳細については、「自動化テーブルの定義」を参照してください。
これらのセクションには、ミニドライバーが 3 つの操作クラスをサポートする方法に関する情報が含まれています。