Estados de cola de E/S
El marco define los siguientes estados para las colas de E/S:
Inactivo
La cola de E/S no contiene solicitudes de E/S y el controlador no está procesando las solicitudes que recibió de la cola de E/S.
Listo
La cola de E/S puede recibir solicitudes de E/S del marco y puede entregar solicitudes de E/S al controlador.
Detenido
La cola de E/S puede recibir solicitudes de E/S del marco, pero no puede entregar solicitudes de E/S al controlador y el controlador no está procesando las solicitudes que recibió de la cola de E/S.
Drenado
La cola de E/S está vacía, no puede recibir nuevas solicitudes de E/S del marco y todas las solicitudes de E/S que estaban en la cola de E/S se han entregado al controlador.
Purgado
La cola de E/S está vacía, no puede recibir nuevas solicitudes de E/S del marco y se han cancelado todas las solicitudes de E/S que estaban en la cola de E/S.
El marco puede establecer una nueva cola de E/S en el estado listo después de que el controlador llame a WdfIoQueueCreate. Sin embargo, las colas de E/S administradas por energía entran en el estado listo solo si el dispositivo está en estado de funcionamiento (D0).
El controlador puede cambiar el estado de una cola de E/S por:
Llamar a WdfIoQueueStop o WdfIoQueueStopSynchronousmente para colocar la cola en su estado detenido.
Llamar a WdfIoQueueDrain o WdfIoQueueDrainSynchronousmente para colocar la cola en su estado purgado.
Llamar a WdfIoQueuePurge o WdfIoQueuePurgeSynchronousmente para colocar la cola en su estado purgado.
Llamar a WdfIoQueueStart para devolver la cola a su estado listo.
Para obtener el estado actual de una cola de E/S, el controlador puede llamar a WdfIoQueueGetState.