Freigeben über


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
STATUS_INVALID_PARAMETER
Der Treiber hat einen ungültigen 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 ist für die parallele Verteilermethode konfiguriert.
STATUS_WDF_PAUSED
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)

Siehe auch

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject