Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

2.3.1.7. Драйверы устройств

Драйверы устройств в Windows представлены в виде динамически связываемых библиотек, загружаемых исполнительным уровнем NTOS. Кроме основной функции по реализации драйверов оборудования механизм драйверов устройств используется ядром системы в качестве средства расширения. Например, как драйвер загружается большая часть подсистемы Win32.

Маршрут потока данных для каждого устройства организует диспетчер ввода-вывода (рис. 2.6). Данный маршрут имеет название стека устройства, состоящего из выделенных маршруту объектов устройств ядра. Каждый объект драйвера содержит таблицу процедур, которая используется для движущихся через стек устройства пакетов запроса ввода-вывода. Для каждого конкретного объекта драйвера есть связанный с ним соответствующий объект в стеке устройств. Задачи некоторых драйверов ограничиваются только фильтрацией операций ввода-вывода для конкретных устройств, шин или сетевых драйверов. Фильтрацию используют для обхода невозможности изменения драйверов, для которых отсутствуют права модификации. Фильтры реализуют и другие функциональные возможности, например, преобразование нескольких дисков в тома RAID или дисков в разделы.

Рис

Рис. 2.6. Упрощенное изображение стеков устройств
для двух томов NTFS

Как драйверы загружаются и файловые системы. Каждому экземпляру тома файловой системы соответствует объект устройства, являющийся частью стека устройств для данного тома. Данный объект устройства связывается с объектом драйвера для файловой системы, который подходит для формата тома. Чтобы добавить функциональность в посылаемые к объектам устройств файловой системы запросы ввода-вывода (например, проверку на наличие вирусов читаемых или записываемых данных) используются драйверы фильтрации файловой системы. Они помещают объекты устройств перед объектами устройств файловой системы.

Сетевые протоколы в Windows (например, IPv4/IPv6) также загружаются как драйверы. Драйвером TCP/IP для совместимости со старыми версиями производится реализация специального протокола обмена с сетевыми интерфейсами, которая осуществляется поверх системной модели ввода-вывода. Реализующие такую схему драйверы в Windows называются мини-портами. В драйвере класса содержится совместно используемая функциональность. Например, драйвер класса, который предоставляет общую функциональность для дисков IDE, SCSI, USB-устройств, представляется для драйверов мини-портов в виде библиотеки.

Предыдущий раздел Оглавление Следующий раздел