EVT_WDF_IO_QUEUE_IO_READ Rückruffunktion (wdfio.h)

[Gilt für KMDF und UMDF]

Die EvtIoRead-Ereignisrückruffunktion eines Treibers verarbeitet eine angegebene Leseanforderung.

Syntax

EVT_WDF_IO_QUEUE_IO_READ EvtWdfIoQueueIoRead;

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

Parameter

[in] Queue

Ein Handle für das Frameworkwarteschlangenobjekt, das der E/A-Anforderung zugeordnet ist.

[in] Request

Ein Handle für ein Frameworkanforderungsobjekt.

[in] Length

Die Anzahl der zu lesenden Bytes.

Rückgabewert

Keine

Bemerkungen

Ein Treiber registriert eine EvtIoRead-Rückruffunktion , wenn er WdfIoQueueCreate aufruft. Weitere Informationen zum Aufrufen von WdfIoQueueCreate finden Sie unter Erstellen von E/A-Warteschlangen.

Wenn ein Treiber eine EvtIoRead-Rückruffunktion für die E/A-Warteschlange eines Geräts registriert hat, empfängt die Rückruffunktion jede Leseanforderung aus der Warteschlange. Weitere Informationen finden Sie unter Anforderungshandler.

Die EvtIoRead-Rückruffunktion muss jede empfangene E/A-Anforderung in irgendeiner Weise verarbeiten. Weitere Informationen finden Sie unter Verarbeiten von E/A-Anforderungen.

Leseanforderungen erfordern einen Ausgabepuffer, der die vom Treiber bereitgestellten Daten empfängt. Informationen dazu, wie der Treiber auf den Puffer einer Leseanforderung zugreifen kann, finden Sie unter Zugreifen auf Datenpuffer in Framework-Based Treibern.

Diese Rückruffunktion kann unter IRQL <= DISPATCH_LEVEL aufgerufen werden, es sei denn, das ExecutionLevel-Element der WDF_OBJECT_ATTRIBUTES Struktur des Geräts oder Treibers ist auf WdfExecutionLevelPassive festgelegt.

Wenn der IRQL PASSIVE_LEVEL ist, ruft das Framework die Rückruffunktion in einem kritischen Bereich auf.

Weitere Informationen zu IRQL-Ebenen für Anforderungshandler finden Sie unter Verwenden der automatischen Synchronisierung.

Die EvtIoRead-Rückruffunktion eines Treibers sollte die folgenden Warteschlangenobjektmethoden nicht aufrufen:

WdfIoQueueDrainSynchronly
WdfIoQueuePurgeSynchronly
WdfIoQueueStopSynchronous

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfio.h (einschließen von Wdf.h)
IRQL <= DISPATCH_LEVEL (siehe Abschnitt Hinweise)

Weitere Informationen

EvtIoDefault

EvtIoWrite

WDF_OBJECT_ATTRIBUTES

WdfIoQueueCreate