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
STATUS_INVALID_PARAMETER
Der Treiber hat ein ungültiges Handle bereitgestellt.
STATUS_NO_MORE_ENTRIES
Das Framework hat das Ende der E/A-Warteschlange erreicht.
STATUS_INVALID_DEVICE_STATE
Die angegebene E/A-Warteschlange wird für die parallele Verteilmethode konfiguriert.
STATUS_WDF_PAUSED
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)

Weitere Informationen

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject