Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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) |