次の方法で共有


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
ヘッダー wdfio.h (Wdf.h を含む)
IRQL <= DISPATCH_LEVEL (「解説」セクションを参照)

こちらもご覧ください

EvtIoDefault

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate