次の方法で共有


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 マクロを使用して、このポインターにアクセスできます。

要件

要件
対象プラットフォーム ユニバーサル
Header ks.h (Ks.h を含む)
Library Ks.lib

こちらもご覧ください

KsFastPropertyHandler

KsPropertyHandlerWithAllocator