共用方式為


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

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfio.h (包含 Wdf.h)
IRQL <= DISPATCH_LEVEL (请参阅一节)

另請參閱

EvtIoDefault

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate