WdfDeviceConfigureWdmIrpDispatchCallback 関数 (wdfdevice.h)

[KMDF と UMDF に適用]

WdfDeviceConfigureWdmIrpDispatchCallback メソッドは、ドライバーの EvtDeviceWdmIrpDispatch コールバック関数を登録します。

構文

NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
  [in]           WDFDEVICE                      Device,
  [in, optional] WDFDRIVER                      Driver,
  [in]           UCHAR                          MajorFunction,
                 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
  [in, optional] WDFCONTEXT                     DriverContext
);

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in, optional] Driver

WdfDriverCreate または WdfGetDriver の以前の呼び出しからドライバーが取得したドライバーのフレームワーク ドライバー オブジェクトへのハンドル。 このパラメーターは省略可能です。

[in] MajorFunction

IRP の主要な関数コードの 1 つ: IRP_MJ_DEVICE_CONTROL、IRP_MJ_INTERNAL_DEVICE_CONTROL、IRP_MJ_READ、IRP_MJ_WRITE。

EvtDeviceWdmIrpDispatch

ドライバーの EvtDeviceWdmIrpDispatch コールバック関数へのポインター。

[in, optional] DriverContext

フレームワークがドライバーの EvtDeviceWdmIrpDispatch コールバック関数に渡す、ドライバー定義のコンテキスト情報への型指定されていないポインター。 このパラメーターは省略可能であり、NULL にすることができます。

戻り値

WdfDeviceConfigureWdmIrpDispatchCallback メソッドでエラーが発生しない場合は、STATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効な MajorFunction 値が指定されました。
STATUS_INSUFFICIENT_RESOURCES
メモリが不足していました。

注釈

ドライバーは 、WdfDeviceConfigureWdmIrpDispatchCallback メソッドを呼び出して 、EvtDeviceWdmIrpDispatch コールバック関数を登録します。 フレームワークは、このメソッドの MajorFunction パラメーターに一致する IRP の主要な関数コードを含む I/O 要求パケット (IRP) を受信するたびに EvtDeviceWdmIrpDispatch を呼び出します。

ドライバーは通常、EvtDriverDeviceAdd コールバック関数から WdfDeviceConfigureWdmIrpDispatchCallback を呼び出します。

ドライバーがコールバック関数を登録する MJ 関数ごとに 、WdfDeviceConfigureWdmIrpDispatchCallback を 1 回呼び出す必要があります。 つまり、複数の MJ 関数をインターセプトするために複数の呼び出しが必要です。

ドライバーは、次の理由で WdfDeviceConfigureWdmIrpDispatchCallback メソッドを呼び出す場合があります。

  • IRP を調べて、ドメイン固有の条件に基づいて特定のキューに割り当てるには (たとえば、ファイル オブジェクトに関連付けられているすべての I/O を特定のキューに転送します)。
  • 個々の要求に基づいてを選択するには、 EvtIoInCallerContext コールバック関数を呼び出す必要があります。

IRP の受信時のキューの指定の詳細については、「 I/O キューへの IRP のディスパッチ」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.11
最小 UMDF バージョン 2.17
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)

こちらもご覧ください

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue