Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 2.69 KB

i-o-queue-states.md

File metadata and controls

51 lines (33 loc) · 2.69 KB
title description keywords ms.date
I/O Queue States
I/O Queue States
I/O queues WDK KMDF , states
states WDK I/O queue
current I/O queue state WDK KMDF
idle I/O queue state WDK KMDF
ready I/O queue state WDK KMDF
stopped I/O queue state WDK KMDF
drained I/O queue state WDK KMDF
purged I/O queue state WDK KMDF
04/20/2017

I/O Queue States

The framework defines the following states for I/O queues:

Idle
The I/O queue contains no I/O requests, and the driver is not processing any requests that it received from the I/O queue.

Ready
The I/O queue can receive I/O requests from the framework, and it can deliver I/O requests to the driver.

Stopped
The I/O queue can receive I/O requests from the framework, but it cannot deliver I/O requests to the driver, and the driver is not processing any requests that it received from the I/O queue.

Drained
The I/O queue is empty, it cannot receive new I/O requests from the framework, and all I/O requests that were in the I/O queue have been delivered to the driver.

Purged
The I/O queue is empty, it cannot receive new I/O requests from the framework, and all I/O requests that were in the I/O queue have been canceled.

The framework can set a new I/O queue to the ready state after your driver calls WdfIoQueueCreate. However, power-managed I/O queues enter the ready state only if the device is in its working (D0) state.

Your driver can change an I/O queue's state by:

To obtain an I/O queue's current state, your driver can call WdfIoQueueGetState.