Función WdfIoQueueRetrieveNextRequest (wdfio.h)
[Se aplica a KMDF y UMDF]
El método WdfIoQueueRetrieveNextRequest recupera la siguiente solicitud de E/S disponible de una cola de E/S especificada.
Sintaxis
NTSTATUS WdfIoQueueRetrieveNextRequest(
[in] WDFQUEUE Queue,
[out] WDFREQUEST *OutRequest
);
Parámetros
[in] Queue
Identificador de un objeto de cola de marco.
[out] OutRequest
Puntero a una ubicación que recibe un identificador de un objeto de solicitud de marco. Si la cola está vacía o se ha recuperado la última solicitud, este parámetro recibe NULL.
Valor devuelto
WdfIoQueueRetrieveNextRequest devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
El controlador proporcionó un identificador no válido. |
|
El marco alcanzó el final de la cola de E/S. |
|
La cola de E/S especificada está configurada para el método de distribución en paralelo. |
|
La cola de E/S especificada está administrada por energía y su dispositivo está en estado de bajo consumo o se detiene la cola especificada. |
Este método también podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si un controlador configura una cola de E/S para el envío manual de solicitudes de E/S, el controlador normalmente llama a WdfIoQueueRetrieveNextRequest para obtener solicitudes de la cola. Un controlador que ha configurado una cola de E/S para el envío secuencial también podría llamar a WdfIoQueueRetrieveNextRequest. Para obtener más información sobre el uso de WdfIoQueueRetrieveNextRequest con los métodos de distribución manual o secuencial, vea Dispatching Methods for I/O Requests.
Después de llamar a WdfIoQueueRetrieveNextRequest para obtener una solicitud de E/S, el controlador posee la solicitud y debe procesar la solicitud de E/ S de alguna manera.
Para obtener más información sobre el método WdfIoQueueRetrieveNextRequest , vea Administración de colas de E/S.
Ejemplos
En el ejemplo de código siguiente se obtiene un identificador para el siguiente objeto de solicitud contenido en la cola de E/S de un dispositivo.
NTSTATUS status;
WDFREQUEST request;
status = WdfIoQueueRetrieveNextRequest(
pDeviceContext->ReadQueue,
&request
);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfio.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DoubleCompletion(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), wdfioqueueretrievenextrequest, WdfIoQueueRetrieveNextRequest(kmdf) |