次の方法で共有


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

[KMDF と UMDF に適用]

ドライバーの EvtIoRead イベント コールバック関数は、指定された読み取り要求を処理します。

構文

EVT_WDF_IO_QUEUE_IO_READ EvtWdfIoQueueIoRead;

void EvtWdfIoQueueIoRead(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request,
  [in] size_t Length
)
{...}

パラメーター

[in] Queue

I/O 要求に関連付けられているフレームワーク キュー オブジェクトへのハンドル。

[in] Request

フレームワーク要求オブジェクトへのハンドル。

[in] Length

読み取るバイト数。

戻り値

なし

解説

ドライバーは、WdfIoQueueCreate を呼び出すときに EvtIoRead コールバック関数を登録します。 WdfIoQueueCreate の呼び出しの詳細については、「I/O キューの作成」を参照してください。

ドライバーがデバイスの I/O キューの EvtIoRead コールバック関数を登録している場合、コールバック関数はキューからすべての読み取り要求を受け取ります。 詳細については、「 要求ハンドラー」を参照してください。

EvtIoRead コールバック関数は、受信した各 I/O 要求を何らかの方法で処理する必要があります。 詳細については、「 I/O 要求の処理」を参照してください。

読み取り要求には、ドライバーが提供するデータを受信する出力バッファーが必要です。 ドライバーが読み取り要求のバッファーにアクセスする方法については、「 Framework-Based ドライバーでのデータ バッファーへのアクセス」を参照してください。

このコールバック関数は、デバイスまたはドライバーのWDF_OBJECT_ATTRIBUTES構造体の ExecutionLevel メンバーが WdfExecutionLevelPassive に設定されていない限り、IRQL <= DISPATCH_LEVELで呼び出すことができます。

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

要求ハンドラーの IRQL レベルの詳細については、「 自動同期の使用」を参照してください。

ドライバーの EvtIoRead コールバック関数は、次のキュー オブジェクト メソッドを呼び出さないでください。

WdfIoQueueDrainSynchronously
WdfIoQueuePurgeSynchronously
WdfIoQueueStopSynchronously

要件

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

こちらもご覧ください

EvtIoDefault

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate