Funzione WdfIoQueueRetrieveNextRequest (wdfio.h)

[Si applica a KMDF e UMDF]

Il metodo WdfIoQueueRetrieveNextRequest recupera la successiva richiesta di I/O disponibile da una coda di I/O specificata.

Sintassi

NTSTATUS WdfIoQueueRetrieveNextRequest(
  [in]  WDFQUEUE   Queue,
  [out] WDFREQUEST *OutRequest
);

Parametri

[in] Queue

Handle per un oggetto coda del framework.

[out] OutRequest

Puntatore a una posizione che riceve un handle per un oggetto richiesta framework. Se la coda è vuota o l'ultima richiesta è stata recuperata, questo parametro riceve NULL.

Valore restituito

WdfIoQueueRetrieveNextRequest 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_NO_MORE_ENTRIES
Il framework ha raggiunto la fine della coda di I/O.
STATUS_INVALID_DEVICE_STATE
La coda di I/O specificata è configurata per il metodo di invio parallelo.
STATUS_WDF_PAUSED
La coda di I/O specificata è gestita dall'alimentazione e il relativo dispositivo è in stato a basso consumo o la coda specificata viene arrestata.
 

Questo metodo potrebbe anche restituire altri valori NTSTATUS.

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Commenti

Se un driver configura una coda di I/O per l'invio manuale delle richieste di I/O, il driver chiama in genere WdfIoQueueRetrieveNextRequest per ottenere le richieste dalla coda. Un driver che ha configurato una coda di I/O per l'invio sequenziale potrebbe anche chiamare WdfIoQueueRetrieveNextRequest. Per altre informazioni sull'uso di WdfIoQueueRetrieveNextRequest con i metodi di invio manuale o sequenziale, vedere Metodi di invio per le richieste di I/O.

Dopo aver chiamato WdfIoQueueRetrieveNextRequest per ottenere una richiesta di I/O, il driver è proprietario della richiesta e deve elaborare la richiesta di I/O in qualche modo.

Per altre informazioni sul metodo WdfIoQueueRetrieveNextRequest , vedere Gestione delle code di I/O.

Esempio

Nell'esempio di codice seguente viene ottenuto un handle per l'oggetto richiesta successivo contenuto nella coda di I/O di un dispositivo.

NTSTATUS  status;
WDFREQUEST  request;

status = WdfIoQueueRetrieveNextRequest(
                                       pDeviceContext->ReadQueue,
                                       &request
                                       );

Requisiti

   
Piattaforma di destinazione Universale
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdfio.h (include 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), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf)

Vedi anche

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveRequestByFileObject