2.1 Структура классового драйвера
Драйвер реализуется как набор процедур, каждая из которых предназначена для реализации отдельного типа обращений к драйверу со стороны диспетчера ввода/вывода. Процедуры, которые необходимо поддерживать классовому драйверу приведены в таблице 1.
Таблица 1
Процедура |
Описание |
|
DriverEntry |
Выполняется при загрузке драйвера операционной системой. Здесь драйвер регистрирует свои остальные точки входа и выполняет свою общую инициализацию. |
|
Unload |
Вызывается при выгрузке драйвера. Здесь необходимо освободить все затребованные ресурсы. |
|
AddDevice |
Здесь создаётся объект-устройство, соответствующий полученному уведомлению от менеджера устройств, и выполняется инициализация данных, специфичных для данного устройства. |
|
DispatchPnP |
Выполняет обработку специфичных Plug&Play запросов , таких как инициализация устройства, таких как инициализация устройства, остановка, удаление устройства и обрабатывать остальные запроса |
|
DispatchPower |
Выполняет обработку запросов по управлению питанием устройства |
|
DispatchSystemControl |
Обрабатывает запросы от подсистемы инструментария Windows (WMI) |
|
DispatchCreate, DispatchClose, DispatchRead, DispatchWrite |
Обслуживают запросы на чтение запись данных для устройства. |
- 1. АНАЛИТИЧЕСКИЙ РАЗДЕЛ
- 1.1 Постановка задачи
- 1.2 Архитектура Windows 2000
- 1.3 Многослойная архитектура драйверов
- 1.4 Архитектура драйверов устройств хранения
- 1.5 Выбор файловой системы
- 2. КОНСТРУКТОРСКИЙ РАЗДЕЛ
- 2.1 Структура классового драйвера
- 2.2 Организация внутреннего хранения данных диска
- 2.3 Доступ к передаваемым данным
- 2.4 Обработка запросов Plug and Play
- 2.5 Обработка расширенных запросов
- 3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ
- 3.1 Выбор и обоснование языка и среды программирования
- 3.2 Структуры данных классового драйвера
- 3.3 Блокировка выгрузки устройства
- 3.4 Процедуры драйвера виртуального диска
- 3.4.1 Инициализация драйвера
- 3.4.2 Обработка запросов записи/чтения
- 3.4.3 Обработка расширенных запросов
- 3.4.4 Обработка запросов Plug and Play
- 3.4.5 Выгрузка драйвера
- 3.5 Программа настройки параметров виртуального диска
- 3.6 Установка драйвера