次の方法で共有


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

関連項目

KsFastPropertyHandler

KsPropertyHandlerWithAllocator