Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модель драйверов Windows



Для взаимодействия драйверов устройств с ядром и исполнительной системой во всех операционных системах Windows, в том числе в Windows 2000, 98 и ME, ис­пользуется так называемая модель драйверов Windows (Windows Driver Model, WDM). Термин драйвер соответствует широкому спектру модулей, включая уже известный вам менеджер ввода-вывода, который передает между другими драй­верами IRP, но сам не взаимодействует с аппаратным обеспечением. Сюда же можно отнести драйвер файловой системы, преобразующий файловые операции в блочные, и редиректор, превращающий локальные файловые операции в вызо­вы удаленного сетевого файл-сервера.

В WDM определено три типа драйверов. Драйвер шины управляет одной из ком­муникационных шин системы, например PCI или USB. Он осуществляет мони­торинг состояния шины и управление питанием, а также следит за подсоединени­ем и отсоединением физических устройств (поддерживает режим plug-and-play). Функциональный драйвер выполняет классические функции управления устрой­ствами, а также преобразует интерфейсные операции устройства в IRP-форму для взаимодействия с более высокими уровнями программного обеспечения сис­темы. Для непосредственного взаимодействия с аппаратным устройством функ­циональный драйвер прибегает к помощи слоя абстрагирования от оборудования. Благодаря такой организации системы, например, драйвер определенного типа сетевых плат PCI может работать с подобными платами на любом компьютере. Последний вид драйвера, называемый фильтрующим, работает только с пакетами запросов ввода-вывода.

Каждый драйвер включает набор подпрограмм, с помощью которых он взаимо­действует с менеджером ввода-вывода. К ним относятся:

Q инициализационная подпрограмма, выполняемая при его загрузке, и соответ­ствующая ей подпрограмма выгрузки, вызываемая перед удалением драйвера из системы;

Q подпрограмма удаления устройства, создающая новый объект для представ­ления только что подсоединенного к системе устройства;

Q набор подпрограмм диспетчеризации, вызываемых для обслуживания каждо­го типа IPR (например, DispatchRead и DispatchWrite);

Q подпрограмма начала ввода-вывода, которая используется в простых драйве­рах, способных обрабатывать в каждый момент времени только один IRP — возможно, из-за ограничения, налагаемого физическим устройством (большин­ство драйверов поддерживают параллельную обработку пакетов);

подпрограмма обработки прерывания, которая вызывается в ответ на преры­вание от устройства, и подпрограмма отложенного вызова процедуры (Defer­red Procedure Call, DPC), аналогичная подпрограмме обработки прерывания, но выполняемая только после того, как приоритет процессора будет снижен до определенного уровня.





Дата публикования: 2014-11-04; Прочитано: 510 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...