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
);
Parameter
[in] Queue
Ein Handle für ein Framework-Warteschlangenobjekt.
[out] OutRequest
Ein Zeiger auf einen Speicherort, der ein Handle für ein Frameworkanforderungsobjekt 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 ein ungültiges Handle bereitgestellt. |
|
Das Framework hat das Ende der E/A-Warteschlange erreicht. |
|
Die angegebene E/A-Warteschlange wird für die parallele Verteilmethode konfiguriert. |
|
Die angegebene E/ A-Warteschlange wird mit Strom verwaltet , und ihr Gerät befindet sich in einem Energiesparzustand, oder die angegebene Warteschlange wird beendet. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Wenn ein Treiber eine E/A-Warteschlange für die manuelle Verteilung 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 Versendung konfiguriert hat, kann auch WdfIoQueueRetrieveNextRequest aufrufen. Weitere Informationen zur Verwendung von WdfIoQueueRetrieveNextRequest mit den manuellen oder sequenziellen Verteilmethoden finden Sie unter Dispatching Methods for E/O Requests.
Nach dem Aufrufen von WdfIoQueueRetrieveNextRequest zum Abrufen einer E/A-Anforderung 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
Im folgenden Codebeispiel wird ein Handle für das nächste Anforderungsobjekt abgerufen, 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 |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfio.h (einschließen von 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) |