33
• Функциональный драйвер – это основной драйвер устройства, который
предоставляет интерфейс с этим устройством. Этот драйвер является
обязательным, за исключением случаев, когда ввод/вывод устройства
осуществляется шинным драйвером или любыми драйверами фильт-
ра. Функциональный драйвер устройства обычно реализуется в виде
пары драйвер/мини-драйвер. В таких парах драйвер класса (обычно
разрабатываемый Microsoft ) обеспечивает функциональные возмож-
ности, необходимые всем устройствам этого типа, а мини-драйвер
(обычно разрабатываемый фирмой-поставщиком конкретного устрой-
ства) обеспечивает специфические функциональные особенности уст-
ройства. PnP Маnager загружает по одному функциональному драй-
веру для каждого устройства.
• Драйвер фильтра сортирует запросы ввода/вывода для шины, устрой-
ства или класса устройств.
Драйверы фильтра являются необязатель-
ными и могут существовать в любом количестве, располагаясь на раз-
личных уровнях – как выше, так и ниже функционального драйвера и
шинного драйвера.
В большинстве случаев драйверы фильтров нижнего уровня
модифицируют поведение аппаратных средств. Например,
низкоуровневый драйвер фильтра класса для мыши может обеспечивать
ускорение ее работы, выполняя нелинейное
преобразование данных о
перемещении мыши. Высокоуровневые драйверы фильтров обычно
предоставляют дополнительные функции для устройства. Например,
высокоуровневый драйвер фильтра для клавиатуры может вводить
дополнительные проверки по безопасности.
Для каждого конкретного устройства существует два или более
уровней драйвера: шинный драйвер для шины ввода/вывода (или PnР
Manger – для устройств, помещенных при перечислении на
корневой уро-
вень) и функциональный драйвер устройства. Помимо этого могут
присутствовать один или несколько драйверов фильтра для шины или
устройства.
Дерево устройств Plug and Play
РnР Маnager поддерживает дерево устройств, которое может
просматриваться с помощью диспетчера устройств (рис. 6),
отображающего все активные устройства в системе и информацию об
этих устройствах. РnР Маnager
обновляет дерево устройств при
добавлении или удалении устройств или по мере переназначения
ресурсов. Дерево устройств является иерархическим, при этом каждое
устройство на шине представляется как дочернее устройство шинного
адаптера или контроллера. Вся статическая информация об аппаратных