次の方法で共有


EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES コールバック関数 (wdfio.h)

[KMDF にのみ適用]

ドライバーの EvtIoAllocateRequestResources コールバック関数は、ドライバーが指定された要求を処理するために必要な要求固有のリソースを割り当てます。

構文

EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES EvtWdfIoAllocateRequestResources;

NTSTATUS EvtWdfIoAllocateRequestResources(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

パラメーター

[in] Queue

I/O キュー オブジェクトへのハンドル。

[in] Request

フレームワークによって作成された要求オブジェクトへのハンドル。 フレームワークは、 Queue パラメーターのハンドルが指定する I/O キューに要求オブジェクトをまだ追加していません。

戻り値

EvtIoAllocateRequestResources コールバック関数は、STATUS_SUCCESSまたは関数でエラーが発生しない場合は、NT_SUCCESS(status) が TRUE に等しい別の状態値を返す必要があります。 それ以外の場合、この関数は、NT_SUCCESS(status) が FALSE である状態値を返す必要があります。

注釈

ドライバーは、WdfIoQueueAssignForwardProgressPolicy を呼び出すときに、EvtIoAllocateRequestResources コールバック関数を登録できます。

ドライバーが EvtIoAllocateRequestResources コールバック関数を登録する場合、フレームワークは、I/O マネージャーがドライバーに送信した I/O 要求パケット (IRP) の要求オブジェクトを作成した直後に関数を呼び出します。

コールバック関数は、ドライバーが キュー パラメーターのハンドルが指定する I/O キューから要求オブジェクトを取得した後、ドライバーが後で要求を処理するために必要なリソースを割り当てることができます。

コールバック関数によってリソースが正常に割り当てられ、STATUS_SUCCESSが返された場合、フレームワークは最終的に要求オブジェクトをドライバーに配信します。

メモリ不足などのリソース割り当てエラーが発生した場合、コールバック関数はエラー状態の値を返す必要があります。 この場合、フレームワークはドライバーの前方進行状況ポリシーに従います。ドライバーは、WdfIoQueueAssignForwardProgressPolicy を呼び出したときにWDF_IO_FORWARD_PROGRESS_RESERVED_POLICY値を指定しました。

EvtIoAllocateRequestResources コールバック関数の詳細については、「I/O 操作の前方進行状況の保証」を参照してください。

このコールバック関数は、IRQL <= DISPATCH_LEVELで呼び出すことができます。 IRQL がPASSIVE_LEVELされている場合、フレームワークは 重要なリージョン内でコールバック関数を呼び出します。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.9
Header wdfio.h (Wdf.h を含む)
IRQL <=DISPATCH_LEVEL (「解説」セクションを参照)

こちらもご覧ください

EvtIoAllocateResourcesForReservedRequest

WdfIoQueueAssignForwardProgressPolicy