2.3 Классификация драйверов
В отличие от пользовательского приложения, драйвер не является процессом и не имеет потока исполнения. Вместо этого управление драйверу передаётся в результате запроса на ввод/вывод от пользовательского приложения или драйвера, либо возникает в результате прерывания. В первом случае контекст исполнения драйвера точно известен - это прикладная программа. Во втором случае контекст исполнения может быть как известным, так и случайным - это зависит от контекста исполнения функции вызывающего драйвера. В третьем случае контекст исполнения случайный, поскольку прерывание (и, соответственно, исполнение кода драйвера) может произойти при выполнении любой прикладной программы.
По расположению в стеке драйверов:
Драйверы высшего уровня -- получают запросы от пользовательского приложения и взаимодействуют с нижестоящими драйверами;
Промежуточные драйверы -- получают запросы от вышестоящих драйверов и взаимодействуют с нижестоящими драйверами;
Драйверы низшего уровня -- получают запросы от вышестоящих драйверов, осуществляют конечную обработку пакетов запросов.
Также выделяют понятие монолитного драйвера - драйвера высшего уровня, не взаимодействующего ни с какими другими драйверами.
В связи с усовершенствованием модели драйверов Windows (WDM - Windows Driver Model), в которой были добавлены поддержка Plug and Play и энергосберегающие технологии, драйвера стали разделять на:
Унаследованные драйвера (Legacy-драйвера, драйвера «в стиле NT») -- драйвера, написанные в старом манере, без поддержки нововведений;
WDM-драйвера - драйвера, которые удовлетворяют всем требованиям расширенной модели WDM.
- 1. Введение
- 2. Аналитический раздел
- 2.1 Техническое задание
- 2.2 Обзор архитектуры Windows NT 5.x
- 2.3 Классификация драйверов
- 2.4 Общая структура Legacy-драйвера
- 2.4.1 Процедура DriverEntry
- 2.4.2 Процедура DriverUnload
- 2.4.3 Рабочие процедуры обработки IRP-пакетов
- 2.4.4 ISR - процедура обработки прерываний
- 2.4.5 DPC - процедура отложенного вызова
- 3. Конструкторский раздел
- 3.1 Legacy-драйвер
- 3.1.1 Процедура DriverEntry
- 3.1.2 DriverUnload
- 3.1.3 DispatchCreate и DispatchClose
- 3.1.4 DispatchDeviceControl
- 3.2 Пользовательское приложение
- 4. Технический раздел
- 4.1 Выбор операционной системы и среды программирования
- 4.2 Интерфейс
- 4.3 Системные требования
- 3.7. Профилировщик
- Профилировщик
- 15. Производительность профилировщика основания
- 8.1.3. Использование sql Profiler (профилировщика)
- Техническая характеристика профилировщиков
- 8.16.Профилировщик .
- § Е17-17. Планировка и уплотнение основанияили выравнивающего слоя профилировщиком дс-502а (д-345а) Техническая характеристика профилировщика дс-502а (д-345а)
- Техническая характеристика профилировщиков
- Профилировщиками дс-97, дс-108