Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
203
Добавлен:
20.02.2016
Размер:
95.23 Кб
Скачать

[9.3.2] Выгрузка драйвера-фильтра

Для отсоединения подсоединенного устройства служит функция IoDetachDevice.

VOID IoDetachDevice(IN OUT PDEVICE_OBJECT TargetDevice);

Соответственно, функция выгрузки драйвера-фильтра DriverUnload должна делать примерно следующее:

  • С помощью вызова ObDereferenceObject() уменьшить счетчик ссылок на объект-файл, полученный в результате вызова IoGetDeviceObjectPointer().

  • Для каждого объекта-устройство, принадлежащего выгружаемому драйверу-фильтру, вызвать IoDetachDevice() и IoDeleteDevice().

Лекция №9. Многоуровневая модель драйверов. Уровневые драйвера и драйвера-фильтры. 1

[9.1] Понимание многоуровневой модели драйверов 1

[9.2] Реализация уровневых драйверов 1

[9.2.1] Объединение драйверов в стек и освобождение драйверов стека 2

[9.2.2.] Обработка запросов IRP стеком драйверов 3

[9.2.2.1] Самостоятельная обработка IRP драйвером 3

[9.2.2.2] Передача первоначального пакета IRP драйверу нижележащего уровня 3

[9.2.2.3] Создание новых пакетов IRP для передачи драйверу нижележащего уровня 4

[9.2.2.4] Создание новых ассоциированных пакетов IRP для передачи драйверу нижележащего уровня 5

[9.2.2.5] Получение драйвером вышележащего уровня уведомления о завершении обработки IRP драйвером нижележащего уровня (Completion Notification) 5

[9.3] Реализация драйверов-фильтров 7

[9.3.1] Подключение фильтра к устройству 7

[9.3.2] Выгрузка драйвера-фильтра 8

9

Соседние файлы в папке Лабы по драйверам