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