WdfIoQueueRetrieveFoundRequest-Funktion (wdfio.h)
[Gilt für KMDF und UMDF]
Die WdfIoQueueRetrieveFoundRequest-Methode übermittelt eine angegebene Anforderung an den Treiber, damit der Treiber die Anforderung verarbeiten kann.
Syntax
NTSTATUS WdfIoQueueRetrieveFoundRequest(
[in] WDFQUEUE Queue,
[in] WDFREQUEST FoundRequest,
[out] WDFREQUEST *OutRequest
);
Parameter
[in] Queue
Ein Handle für ein Framework-Warteschlangenobjekt.
[in] FoundRequest
Ein Handle für ein Frameworkanforderungsobjekt, das durch Aufrufen von WdfIoQueueFindRequest abgerufen wurde.
[out] OutRequest
Ein Zeiger auf einen Speicherort, der ein Handle für ein Frameworkanforderungsobjekt empfängt. Der Treiber muss dieses Handle bei der Verarbeitung der Anforderung verwenden.
Rückgabewert
WdfIoQueueRetrieveFoundRequest 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. |
|
Die Anforderung, die durch den FoundRequest-Parameter identifiziert wird, kann nicht in der E/A-Warteschlange gefunden werden. |
|
Das Framework hat das Ende der E/A-Warteschlange erreicht, ohne eine Anforderung zu finden, die den Suchkriterien entspricht. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Nach dem Aufrufen von WdfIoQueueRetrieveFoundRequest zum Abrufen einer E/A-Anforderung besitzt der Treiber die Anforderung und muss die E/A-Anforderung in irgendeiner Weise verarbeiten.
Vor dem Aufrufen von WdfIoQueueRetrieveFoundRequest muss der Treiber WdfIoQueueFindRequest aufrufen, wodurch ein Handle abgerufen wird, das der Treiber als FoundRequest-Parameter für WdfIoQueueRetrieveFoundRequest verwenden kann.
Wenn Ihr Treiber mit KMDF-Version 1.11 oder höher erstellt wurde, kann der Treiber WdfIoQueueRetrieveFoundRequest aufrufen, ohne zuerst WdfIoQueueFindRequest aufzurufen. In diesem Fall muss der Treiber sicherstellen, dass das Anforderungsobjekt weiterhin gültig ist und sich in der Warteschlange befindet.
Wenn ein Aufruf von WdfIoQueueRetrieveFoundRequest STATUS_NOT_FOUND zurückgibt, wurde eine Anforderung entfernt, die sich zuvor in der Warteschlange befand. Die Anforderung wurde möglicherweise abgebrochen.
Weitere Informationen zur WdfIoQueueRetrieveFoundRequest-Methode finden Sie unter Verwalten von E/A-Warteschlangen.
Beispiele
Ein Codebeispiel, das WdfIoQueueRetrieveFoundRequest verwendet, finden Sie unter WdfIoQueueFindRequest.
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), wdfioqueuefindrequestfailed, WdfIoQueueFindRequestFailed(kmdf), wdfioqueueretrievefoundrequest, WdfIoQueueRetrieveFoundRequest(kmdf) |