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) |