KsPropertyHandler 関数 (ks.h)
ドライバーは、IRP 処理 KsPropertyHandler 関数を呼び出します。
構文
KSDDKAPI NTSTATUS KsPropertyHandler(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet
);
パラメーター
[in] Irp
処理されるプロパティ要求を含む IRP を指定します。
[in] PropertySetsCount
渡されるプロパティ セットの数を指定します。
[in] PropertySet
KSPROPERTY_SET 構造体の配列を指します。 ドライバーは、KsPropertyHandler が処理するプロパティ セットごとに 1 つの構造体を提供する必要があります。
戻り値
KsPropertyHandler 関数は、成功した場合はSTATUS_SUCCESSを返し、失敗した場合は処理されるプロパティに固有のエラーを返します。 この関数は、IRP->IO_STATUS_BLOCKを設定します。情報メンバー。内部エラーのため 0 に設定するか、プロパティ ハンドラーで設定します。 この関数は、lrp->IoStatus.Status メンバーを設定せず、IRP も完了しません。
備考
KsPropertyHandler は、セットによって定義されたすべてのプロパティ識別子に応答し、PASSIVE_LEVELでのみ呼び出すことができます。
各 KSPROPERTY_SET エントリには、PropertyItem メンバー内の KSPROPERTY_ITEM 構造体の配列へのポインターが含まれています。 ドライバー固有の処理の場合、KsPropertyHandler は、PropertyItem 内のドライバーが提供するコールバックのいずれかに各要求を渡します。 KsPropertyHandler は、必要な IRP 処理を処理します。
KsPropertyHandler は、その KSPROPERTY_SET 構造体の FastIoTable メンバーを使用しません。 ドライバーが要求の高速 I/O 処理をサポートする必要がある場合は、同じKSPROPERTY_SET構造体を KsFastPropertyHandler ルーチンに渡す必要があります。
プロパティ セットの所有者は、プロパティ処理の事前フィルター処理または後フィルター処理を実行できます。 基本的なプロパティ構造のアクセス例外は、KsPropertyHandler 関数によって処理されますが、特定の例外のクリーンアップはプロパティ ハンドラーでカバーする必要があります。
KsPropertyHandler は、IRP の Irp->Tail.Overlay.DriverContext パラメーター内の関連するKSPROPERTY_SET構造体へのポインターを配置します。 ミニドライバーは、ks.hで定義されているKSPROPERTY_SET_IRP_STORAGE マクロを使用して、このポインターにアクセスできます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | ks.h (Ks.h を含む) |
ライブラリ | Ks.lib |
関連項目
KsPropertyHandlerWithAllocator の