Función WdfIoQueueStop (wdfio.h)

[Se aplica a KMDF y UMDF]

El método WdfIoQueueStop impide que una cola de E/S entregue solicitudes de E/S, pero la cola recibe y almacena nuevas solicitudes.

Sintaxis

void WdfIoQueueStop(
  [in]           WDFQUEUE               Queue,
  [in, optional] PFN_WDF_IO_QUEUE_STATE StopComplete,
  [in, optional] WDFCONTEXT             Context
);

Parámetros

[in] Queue

Identificador de un objeto de cola de marco.

[in, optional] StopComplete

Puntero a una función de devolución de llamada EvtIoQueueState proporcionada por el controlador. Este parámetro es opcional y puede ser NULL.

[in, optional] Context

Puntero sin tipo a la información de contexto proporcionada por el controlador que el marco pasa a la función de devolución de llamada EvtIoQueueState . Este parámetro es opcional y puede ser NULL.

Valor devuelto

None

Observaciones

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

Si el controlador proporciona una función de devolución de llamada EvtIoQueueState , el marco lo llama después de que se hayan completado o cancelado todas las solicitudes que se entregaron al controlador. Puede modificar el IRQL en el que se ejecuta la devolución de llamada especificando ExecutionLevel en WDF_OBJECT_ATTRIBUTES en tiempo de creación de la cola. Para obtener más información, consulta la sección Comentarios deEVT_WDF_IO_QUEUE_STATE.

El método WdfIoQueueStop permite a la cola recibir nuevas solicitudes, incluso si la cola no recibió nuevas solicitudes antes de que el controlador llamara WdfIoQueueStop. Por ejemplo, antes de llamar a WdfIoQueueStop, un controlador podría llamar a WdfIoQueueDrain, lo que hace que el marco deje de agregar nuevas solicitudes de E/S a la cola. La llamada posterior del controlador de WdfIoQueueStop hace que el marco reanude la adición de solicitudes a la cola.

Un controlador no debe llamar a WdfIoQueueDrain después de llamar a WdfIoQueueStop hasta que haya reiniciado la cola llamando a WdfIoQueueStart.

Para obtener más información sobre el método WdfIoQueueStop , consulte Administración de colas de E/S.

Ejemplos

En el ejemplo de código siguiente se detiene una cola de E/S especificada. Cuando todas las solicitudes que se entregaron al controlador se han completado o cancelado, llama a la función EvtIoQueueStateStop de un controlador.

WDFCONTEXT stopContext;

stopContext = &myContext;

WdfIoQueueStop(
               queue,
               EvtIoQueueStateStop,
               stopContext
               );

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 ChangeQueueState(kmdf), DriverCreate(kmdf), EvtSurpriseRemoveNoSuspendQueue(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), NoCancelFromEvtSurpriseRemove(kmdf)

Consulte también

EvtIoQueueState

WdfIoQueueStart

WdfIoQueueStopSynchronously