Общие сведения о модели ввода-вывода Windows
Каждая операционная система имеет неявную или явную модель ввода-вывода для обработки потока данных на периферийных устройствах и из нее. Одной из функций модели ввода-вывода Microsoft Windows является поддержка асинхронного ввода-вывода. Кроме того, модель ввода-вывода имеет следующие общие функции:
Диспетчер операций ввода-вывода представляет согласованный интерфейс для всех драйверов режима ядра, включая драйверы минимального уровня, промежуточных и файловых систем. Все запросы ввода-вывода к драйверам отправляются в виде пакетов запросов ввода-вывода (IRPs).
Операции ввода-вывода многоуровневы. Диспетчер операций ввода-вывода экспортирует системные службы ввода-вывода, которые защищенные в пользовательском режиме подсистемы вызывают для выполнения операций ввода-вывода от имени своих приложений, а также конечных пользователей. Диспетчер операций ввода-вывода перехватывает эти вызовы, настраивает одну или несколько IRP и направляет их через возможно многоуровневые драйверы на физические устройства.
Диспетчер ввода-вывода определяет набор стандартных подпрограмм, некоторые обязательные и другие необязательные, которые могут поддерживать драйверы. Все драйверы следуют относительно согласованной модели реализации, с учетом различий между периферийными устройствами и функциональности, требуемой от драйверов шины, функций, фильтра и файловой системы.
Как и сама операционная система, драйверы основаны на объектах. Драйверы, их устройства и системное оборудование представлены в виде объектов. Диспетчер ввода-вывода и другие компоненты операционной системы экспортируют подпрограммы режима ядра, которые драйверы могут вызывать для выполнения работы, управляя соответствующими объектами.
Помимо использования irPs для передачи традиционных запросов ввода-вывода, диспетчер ввода-вывода работает с PnP и диспетчерами питания для отправки irPs, содержащих PnP и запросы питания.