Compartir a través de


Función WdfIoQueueGetState (wdfio.h)

[Se aplica a KMDF y UMDF]

El método WdfIoQueueGetState devuelve el estado de una cola de E/S especificada.

Sintaxis

WDF_IO_QUEUE_STATE WdfIoQueueGetState(
  [in]            WDFQUEUE Queue,
  [out, optional] PULONG   QueueRequests,
  [out, optional] PULONG   DriverRequests
);

Parámetros

[in] Queue

Identificador de un objeto de cola de marco.

[out, optional] QueueRequests

Puntero a una ubicación que recibe el número de solicitudes de E/S que se encuentran actualmente en la cola de E/S y que no se han entregado al controlador. Este puntero es opcional y se puede NULL.

[out, optional] DriverRequests

Puntero a una ubicación que recibe el número de solicitudes de E/S que se han entregado al controlador, pero que el controlador no se ha completado o cancelado. Este puntero es opcional y se puede NULL.

Valor devuelto

WdfIoQueueGetState devuelve un valor de tipo WDF_IO_QUEUE_STATE, que puede contener el OR bit a bit de varios enumeradores de WDF_IO_QUEUE_STATE.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Observaciones

Después de llamar a WdfIoQueueGetState, el controlador puede pasar el valor de estado recibido a las siguientes funciones, que se definen en Wdfio.h:

Si el controlador usa el de sincronización automática del marco, el estado de la cola de E/S no cambiará entre el momento en que el WdfIoQueueGetState método obtiene información de estado del marco y la hora en que el método devuelve. De lo contrario, el estado de la cola podría cambiar antes de que se devuelva el WdfIoQueueGetState método.

Para obtener más información sobre el método WdfIoQueueGetState, vea Obtener propiedades de cola de E/S.

Ejemplos

El ejemplo de código siguiente es una rutina que devuelve TRUE si una cola de E/S especificada está inactiva.

BOOLEAN
IsQueueIdle(
    IN WDFQUEUE Queue
    )
{
    WDF_IO_QUEUE_STATE queueStatus;
    queueStatus = WdfIoQueueGetState(
                                     Queue,
                                     NULL,
                                     NULL
                                     );
    return (WDF_IO_QUEUE_IDLE(queueStatus)) ? TRUE : FALSE;
}

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
versión mínima de UMDF 2.0
encabezado wdfio.h (incluya Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
irQL <= DISPATCH_LEVEL
reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

EvtIoQueueState

WDF_IO_QUEUE_STATE