Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Диспетчер операций ввода-вывода предоставляет асинхронную поддержку ввода-вывода, чтобы источник запроса ввода-вывода (обычно приложение в режиме пользователя, но иногда другой драйвер) продолжал выполняться, а не ожидать завершения запроса ввода-вывода. Поддержка асинхронного ввода-вывода повышает общую пропускную способность системы и производительность любого кода, который делает запрос ввода-вывода.
С поддержкой асинхронного ввода-вывода драйверы в режиме ядра не обязательно обрабатывают запросы ввода-вывода в том же порядке, в котором они были отправлены диспетчеру операций ввода-вывода. Диспетчер ввода-вывода или драйвер верхнего уровня может переупорядочивать запросы ввода-вывода по мере их получения. Драйвер может разделить большой запрос на передачу данных на небольшие запросы на передачу. Кроме того, драйвер может перекрывать обработку запросов ввода-вывода, особенно на симметричной многопроцессорной платформе, как упоминалось в Multiprocessor-Safe.
Кроме того, обработка драйвера в режиме ядра отдельного запроса ввода-вывода не обязательно сериализуется. То есть драйвер не обязательно обрабатывает каждый IRP до завершения перед началом обработки следующего входящего запроса ввода-вывода.
Когда драйвер получает IRP, он отвечает, выполняя столько специфической обработки IRP, сколько возможно. Если драйвер поддерживает асинхронную обработку IRP, он может отправить IRP следующему драйверу при необходимости и начать обработку следующего IRP, не ожидая завершения первого. Драйвер может зарегистрировать "подпрограмму завершения", которая диспетчер ввода-вывода вызывает, когда другой драйвер завершил обработку IRP. Драйверы предоставляют значение состояния в блоке состояния ввода-вывода IRP, к которому могут получить доступ другие драйверы для определения состояния запроса ввода-вывода.
Драйверы могут поддерживать сведения о состоянии текущих операций ввода-вывода в специальной части своих объектов устройства, называемых расширением устройства.
Дополнительные сведения см. в разделе "Обработка irPs " и "Методы ввода и вывода".