logo
Разработка драйвера виртуального жесткого диска

2.1 Структура классового драйвера

Драйвер реализуется как набор процедур, каждая из которых предназначена для реализации отдельного типа обращений к драйверу со стороны диспетчера ввода/вывода. Процедуры, которые необходимо поддерживать классовому драйверу приведены в таблице 1.

Таблица 1

Процедура

Описание

DriverEntry

Выполняется при загрузке драйвера операционной системой. Здесь драйвер регистрирует свои остальные точки входа и выполняет свою общую инициализацию.

Unload

Вызывается при выгрузке драйвера. Здесь необходимо освободить все затребованные ресурсы.

AddDevice

Здесь создаётся объект-устройство, соответствующий полученному уведомлению от менеджера устройств, и выполняется инициализация данных, специфичных для данного устройства.

DispatchPnP

Выполняет обработку специфичных Plug&Play запросов , таких как инициализация устройства, таких как инициализация устройства, остановка, удаление устройства и обрабатывать остальные запроса

DispatchPower

Выполняет обработку запросов по управлению питанием устройства

DispatchSystemControl

Обрабатывает запросы от подсистемы инструментария Windows (WMI)

DispatchCreate,

DispatchClose,

DispatchRead,

DispatchWrite

Обслуживают запросы на чтение запись данных для устройства.