I/O 要求に関する情報の取得

I/O リクエストを処理する前に、ドライバーはリクエストタイプを決定する必要があります。 フレームワーク ベースのドライバーは、デバイスの I/O キューを作成するとき、通常、各キューまたはリクエストハンドラーが特定のタイプ (読み取り、書き込み、またはデバイス I/O コントロール) のリクエストを受信するように、 I/O キューとリクエストハンドラーを設定します。

リクエストタイプを決定した後、ドライバーは必要に応じて、リクエストの入力バッファーと出力バッファーを取得する必要があります。 リクエストのバッファーを取得する方法については、Accessing Data Buffers in Framework-Based Driversをご参照ください。

ドライバーが受信した I/O リクエストに関する追加情報を提供するために、フレームワークリクエストオブジェクトは次のメソッドを定義します:

  • I/O リクエストが配送された I/O キューへのハンドルを返すWdfRequestGetIoQueue

  • リクエストの発信元のプロセッサ アクセス モード (ユーザーまたはカーネル) を返す WdfRequestGetRequestorMode

  • リクエストに関連付けられたフレームワーク ファイル オブジェクトへのハンドルを返すWdfRequestGetFileObject

  • リクエストに関連付けられた WDM IRP 構造を返すWdfRequestWdmGetIrp

  • WDM フォーマットで IRP 以外のリクエストパラメーターを取得するWdfRequestGetParameters

ドライバーが I/O リクエストを完了した後、ドライバー スタック内の他のドライバーは、リクエストの完了情報を取得するために、追加のリクエストオブジェクト メソッドを呼び出すことができます。 これらの追加メソッドの詳細については、Completing I/O Requestsをご参照ください。