Поделиться через


Состояния очереди ввода-вывода

Платформа определяет следующие состояния для очередей ввода-вывода:

бездействия
Очередь ввода-вывода не содержит запросов ввода-вывода, а драйвер не обрабатывает запросы, полученные из очереди ввода-вывода.

готово
Очередь ввода-вывода может получать запросы ввода-вывода из платформы, и она может доставлять запросы ввода-вывода драйверу.

остановлено
Очередь ввода-вывода может получать запросы ввода-вывода из платформы, но не может доставлять запросы ввода-вывода драйверу, а драйвер не обрабатывает запросы, полученные из очереди ввода-вывода.

осушенное
Очередь ввода-вывода пуста, она не может получать новые запросы ввода-вывода из платформы, а все запросы ввода-вывода, которые находились в очереди ввода-вывода, были доставлены драйверу.

очищено
Очередь ввода-вывода пуста, она не может получать новые запросы ввода-вывода из платформы, а все запросы ввода-вывода, которые находились в очереди ввода-вывода, были отменены.

Фреймворк может установить новый список ввода-вывода в готовое состояние после того, как ваш драйвер вызовет WdfIoQueueCreate. Однако очереди ввода-вывода с управлением энергопотреблением входят в состояние готовности только в том случае, если устройство находится в рабочем состоянии (D0).

Драйвер может изменить состояние очереди ввода-вывода следующими способами:

Чтобы получить текущее состояние очереди ввода-вывода, драйвер может вызвать WdfIoQueueGetState.