Condividi tramite


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
STATUS_INVALID_PARAMETER
Il driver ha fornito un handle non valido.
STATUS_NOT_FOUND
Impossibile trovare la richiesta identificata dal parametro FoundRequest nella coda di I/O.
STATUS_NO_MORE_ENTRIES
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)

Vedi anche

WdfIoQueueFindRequest

WdfIoQueueRetrieveNextRequest

WdfIoQueueRetrieveRequestByFileObject