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


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

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

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

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

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

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

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

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

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

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