Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 80 стр.

UptoLike

Составители: 

80
2.7 Диспетчер ввода-вывода
Диспетчер ввода-вывода (I/O Manager) определяет модель доставки
запросов ввода-вывода драйверам устройств. Подсистема ввода-вывода
управляется пакетами. Большая часть запросов ввода-вывода
представляется пакетами запросов ввода-вывода (I/O Request Packets, IRP),
передаваемых от одного компонента подсистемы ввода-вывода к другому.
(Исключением является быстрый ввод-вывод, при котором IRP не
используются.) Подсистема ввода-вывода позволяет потоку приложения
управлять сразу несколькими запросами ввода-вывода. IRPэто структура
данных, которая содержит информацию, описывающую запрос ввода-
вывода. Она используется диспетчером ввода-вывода следующим образом.
Диспетчер ввода-вывода создает IRP, представляющий операцию
ввода-вывода, передает указатель на IRP соответствующему
драйверу и удаляет пакет
по завершении операции ввода-вывода.
Драйвер, получивший IRP, выполняет указанную в пакете
операцию и возвращает IRP диспетчеру ввода-вывода.
Диспетчер ввода-вывода либо завершает эту операцию, либо
передает пакет другому драйверу для дальнейшей обработки.
Диспетчер ввода-вывода не только создает и уничтожает IRP, но и
содержит общий для различных
драйверов код, используемый ими при
обработке ввода-вывода. Благодаря этому коду драйверы стали проще и
компактнее. Например, одна из таких функций диспетчера ввода-вывода
позволяет драйверу вызывать другие драйверы. Диспетчер управляет
также буферами ввода-вывода и тайм-аутами драйверов, регистрирует
устанавливаемые в систему файловые системы. Диспетчер ввода-вывода
предоставляет драйверам
около сотни готовых функций.
Диспетчер ввода-вывода предоставляет также гибкие сервисы ввода-
вывода, используя которые подсистемы окружения (Win32, POSIX)
     2.7 Диспетчер ввода-вывода
     Диспетчер ввода-вывода (I/O Manager) определяет модель доставки
запросов ввода-вывода драйверам устройств. Подсистема ввода-вывода
управляется    пакетами.   Большая      часть   запросов   ввода-вывода
представляется пакетами запросов ввода-вывода (I/O Request Packets, IRP),
передаваемых от одного компонента подсистемы ввода-вывода к другому.
(Исключением является быстрый ввод-вывод, при котором IRP не
используются.) Подсистема ввода-вывода позволяет потоку приложения
управлять сразу несколькими запросами ввода-вывода. IRP – это структура
данных, которая содержит информацию, описывающую запрос ввода-
вывода. Она используется диспетчером ввода-вывода следующим образом.
     − Диспетчер ввода-вывода создает IRP, представляющий операцию
        ввода-вывода, передает указатель на IRP соответствующему
        драйверу и удаляет пакет по завершении операции ввода-вывода.
     − Драйвер, получивший IRP, выполняет указанную в пакете
        операцию и возвращает IRP диспетчеру ввода-вывода.
     − Диспетчер ввода-вывода либо завершает эту операцию, либо
        передает пакет другому драйверу для дальнейшей обработки.
     Диспетчер ввода-вывода не только создает и уничтожает IRP, но и
содержит общий для различных драйверов код, используемый ими при
обработке ввода-вывода. Благодаря этому коду драйверы стали проще и
компактнее. Например, одна из таких функций диспетчера ввода-вывода
позволяет драйверу вызывать другие драйверы. Диспетчер управляет
также буферами ввода-вывода и тайм-аутами драйверов, регистрирует
устанавливаемые в систему файловые системы. Диспетчер ввода-вывода
предоставляет драйверам около сотни готовых функций.
     Диспетчер ввода-вывода предоставляет также гибкие сервисы ввода-
вывода, используя которые подсистемы окружения (Win32, POSIX)



                                   80