WdfIoQueueRetrieveNextRequest-Funktion (wdfio.h)
[Gilt für KMDF und UMDF]
Die WdfIoQueueRetrieveNextRequest Methode ruft die nächste verfügbare E/A-Anforderung aus einer angegebenen E/A-Warteschlange ab.
Syntax
NTSTATUS WdfIoQueueRetrieveNextRequest(
[in] WDFQUEUE Queue,
[out] WDFREQUEST *OutRequest
);
Die Parameter
[in] Queue
Ein Handle zu einem Framework-Warteschlangenobjekt.
[out] OutRequest
Ein Zeiger auf eine Position, die ein Handle zu einem Framework-Anforderungsobjekt empfängt. Wenn die Warteschlange leer ist oder die letzte Anforderung abgerufen wurde, empfängt dieser Parameter NULL-.
Rückgabewert
WdfIoQueueRetrieveNextRequest gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Der Treiber hat einen ungültigen Handle bereitgestellt. |
|
Das Framework hat das Ende der E/A-Warteschlange erreicht. |
|
Die angegebene E/A-Warteschlange ist für die parallele Verteilermethode konfiguriert. |
|
Die angegebene E/A-Warteschlange ist stromverwalteten, und das Gerät befindet sich in einem Energiesparzustand, oder die angegebene Warteschlange wird beendet. |
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Wenn ein Treiber eine E/A-Warteschlange für die manuelle Verteilerung von E/A-Anforderungen konfiguriert, ruft der Treiber in der Regel WdfIoQueueRetrieveNextRequest auf, um Anforderungen aus der Warteschlange abzurufen. Ein Treiber, der eine E/A-Warteschlange für die sequenzielle Verteilerung konfiguriert hat, kann auch WdfIoQueueRetrieveNextRequestaufrufen. Weitere Informationen zur Verwendung von WdfIoQueueRetrieveNextRequest mit den manuellen oder sequenziellen Dispatching-Methoden finden Sie unter Dispatching Methods for I/O Requests.
Nachdem sie WdfIoQueueRetrieveNextRequest aufgerufen haben, um eine E/A-Anforderung zu erhalten, besitzt der Treiber die Anforderung und muss die E/A-Anforderung in irgendeiner Weise verarbeiten.
Weitere Informationen zur WdfIoQueueRetrieveNextRequest-Methode finden Sie unter Verwalten von E/A-Warteschlangen.
Beispiele
Das folgende Codebeispiel ruft ein Handle für das nächste Anforderungsobjekt ab, das in der E/A-Warteschlange eines Geräts enthalten ist.
NTSTATUS status;
WDFREQUEST request;
status = WdfIoQueueRetrieveNextRequest(
pDeviceContext->ReadQueue,
&request
);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | universell |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Kopfzeile | wdfio.h (einschließen Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf) |