次の方法で共有


KS プロパティ

プロパティは、フィルターやピンなどのカーネル ストリーミング オブジェクトに属する機能または制御状態の設定を表します。 カーネル ストリーミング ミニドライバーのクライアントは、プロパティ要求 (KSPROPERTY_TYPE_GETとKSPROPERTY_TYPE_SET) を、ミニドライバーがインスタンス化したフィルターとピンに送信して設定できます。 関連するプロパティのグループは、 プロパティ セットと呼ばれます。

個々のプロパティを取得または設定するために、ユーザー モード クライアントは dwIoControlCode パラメーターを IOCTL_KS_PROPERTY に設定して Win32 関数 DeviceIoControl を呼び出します。 DeviceIoControl については、Microsoft Windows SDK のドキュメントを参照してください。 カーネル モードクライアントは KsSynchronousDeviceControl を呼び出す必要があります。

入力バッファーは、 KSPROPERTY 構造体か、KSPROPERTY 構造体と要求に関連するその他の情報を含むラッパーです。 この呼び出しに応答して、オペレーティング システムは、クラス ドライバーに IRP をディスパッチします。

クラス ドライバーは、結果として得られる IRP を受け取ると、 KsPropertyHandler を呼び出します。 クラス ドライバーには、プロパティ要求の詳細を識別する KSPROPERTY 構造体のアドレスを呼び出しパラメーターとして含まれます。 プロパティ要求は、クラス ドライバー レベルで自動的に処理されるか、ミニドライバーによって提供されるハンドラーによって処理されます。 クラス ドライバーによって処理されるプロパティ セットとミニドライバーで提供されるハンドラーを必要とするプロパティ セットなど、参照情報については 、カーネル ストリーミング プロパティ セットを 参照してください。 ミニドライバーは、クラス ドライバーによって既定で処理されるプロパティのコールバックを提供することで、クラス ドライバー ハンドラーをオーバーライドまたは拡張できます。

ミニドライバーがこのプロパティのハンドラーを提供している場合、 KsPropertyHandler は、適切なミニドライバー指定のコールバックに要求を渡します。

ミニドライバーは、 KSPROPERTY_ITEM型の構造体のプロパティ サポート コールバックへのポインターを提供します。 ミニドライバーは、関連するKSPROPERTY_ITEM構造体の配列を KSPROPERTY_SET 構造体にグループ化します。 クラス ドライバー モデルによって、ミニドライバーがプロパティ セット データをクラス ドライバーで使用できるようにするためのメソッドが若干異なります。 カーネル ストリーミングのリンクに従って、クラス ドライバー固有の情報を見つけることができます。

ミニドライバーは、KSPROPERTY_ITEM構造体内の KSPROPERTY_VALUES 構造体へのポインターも提供します。 KSPROPERTY_VALUES構造体には、 KSPROPERTY_MEMBERSLIST 構造体の配列が含まれています。 ここで、ミニドライバーは、プロパティの許容される値のサイズと種類を指定します。 各KSPROPERTY_MEMBERSLIST構造体には、ヘッダー メンバーが含まれています。 KSPROPERTY_MEMBERSHEADER ミニドライバーがサポートするプロパティの有効範囲または値を指定する方法については、「」を参照してください。 このメカニズムの実装は、Microsoft Windows Driver Kit (WDK) の Testcap サンプルでも確認できます。

プロパティの許容される値のサイズと型を報告するために、クラス ドライバーは、クライアントからの KSPROPERTY_TYPE_BASICSUPPORT 要求に応答してKSPROPERTY_DESCRIPTION構造体を返します。

クラス ドライバーは、KSPROPERTY_DESCRIPTION構造体にKSPROPERTY_MEMBERSHEADER構造体の一覧を追加できます。