EVT_WDF_IO_QUEUE_IO_READ callback function (wdfio.h)

[Applies to KMDF and UMDF]

A driver's EvtIoRead event callback function processes a specified read request.

Syntax

EVT_WDF_IO_QUEUE_IO_READ EvtWdfIoQueueIoRead;

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

Parameters

[in] Queue

A handle to the framework queue object that is associated with the I/O request.

[in] Request

A handle to a framework request object.

[in] Length

The number of bytes to be read.

Return value

None

Remarks

A driver registers an EvtIoRead callback function when it calls WdfIoQueueCreate. For more information about calling WdfIoQueueCreate, see Creating I/O Queues.

If a driver has registered an EvtIoRead callback function for a device's I/O queue, the callback function receives every read request from the queue. For more information, see Request Handlers.

The EvtIoRead callback function must process each received I/O request in some manner. For more information, see Processing I/O Requests.

Read requests require an output buffer, which receives data that the driver provides. For information about how the driver can access a read request's buffer, see Accessing Data Buffers in Framework-Based Drivers.

This callback function can be called at IRQL <= DISPATCH_LEVEL, unless the ExecutionLevel member of the device or driver's WDF_OBJECT_ATTRIBUTES structure is set to WdfExecutionLevelPassive.

If the IRQL is PASSIVE_LEVEL, the framework calls the callback function within a critical region.

For more information about IRQL levels for request handlers, see Using Automatic Synchronization.

A driver's EvtIoRead callback function should not call the following queue object methods:

WdfIoQueueDrainSynchronously
WdfIoQueuePurgeSynchronously
WdfIoQueueStopSynchronously

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.0
Minimum UMDF version 2.0
Header wdfio.h (include Wdf.h)
IRQL <= DISPATCH_LEVEL (see Remarks section)

See also

EvtIoDefault

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate