Funzione WdfIoQueueRetrieveFoundRequest (wdfio.h)
[Si applica a KMDF e UMDF]
Il metodo WdfIoQueueRetrieveFoundRequest recapita una richiesta specificata al driver, in modo che il driver possa elaborare la richiesta.
Sintassi
NTSTATUS WdfIoQueueRetrieveFoundRequest(
[in] WDFQUEUE Queue,
[in] WDFREQUEST FoundRequest,
[out] WDFREQUEST *OutRequest
);
Parametri
[in] Queue
Handle a un oggetto code del framework.
[in] FoundRequest
Handle a un oggetto richiesta framework ottenuto chiamando WdfIoQueueFindRequest.
[out] OutRequest
Puntatore a una posizione che riceve un handle a un oggetto richiesta framework. Il driver deve usare questo handle durante l'elaborazione della richiesta.
Valore restituito
WdfIoQueueRetrieveFoundRequest restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Il driver ha fornito un handle non valido. |
|
Impossibile trovare la richiesta identificata dal parametro FoundRequest nella coda di I/O. |
|
Il framework ha raggiunto la fine della coda di I/O senza trovare una richiesta che corrisponda ai criteri di ricerca. |
Questo metodo potrebbe restituire anche altri valori NTSTATUS.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Dopo aver chiamato WdfIoQueueRetrieveFoundRequest per ottenere una richiesta di I/O, il driver possiedela richiesta e deve elaborare la richiesta di I/O in qualche modo.
Prima di chiamare WdfIoQueueRetrieveFoundRequest, il driver deve chiamare WdfIoQueueFindRequest, che recupera un handle che il driver può usare come parametro FoundRequest per WdfIoQueueRetrieveFoundRequest.
Se il driver è stato compilato con KMDF versione 1.11 o successiva, il driver può chiamare WdfIoQueueRetrieveFoundRequest senza prima chiamare WdfIoQueueFindRequest. In questo caso, il driver deve assicurarsi che l'oggetto request sia ancora valido e nella coda.
Se una chiamata a WdfIoQueueRetrieveFoundRequest restituisce STATUS_NOT_FOUND, è stata rimossa una richiesta precedentemente presente nella coda. La richiesta potrebbe essere stata annullata.
Per altre informazioni sul metodo WdfIoQueueRetrieveFoundRequest , vedere Gestione delle code di I/O.
Esempio
Per un esempio di codice che usa WdfIoQueueRetrieveFoundRequest, vedere WdfIoQueueFindRequest.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfio.h (includere Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueuefindrequestfailed, WdfIoQueueFindRequestFailed(kmdf), wdfioqueueretrievefoundrequest, WdfIoQueueRetrieveFoundRequest(kmdf) |