ВУЗ:
Составители:
101
3.4 Драйвер виртуального диска
Рассмотрим конкретный пример – драйвер виртуального диска. По
мере необходимости будем снабжать текст программы необходимыми
описаниями.
Драйвер создает виртуальный диск, отформатированный по
умолчанию как FAT. Выбор этого типа драйвера обусловлен следующим:
− простота реализации, не требуется кода для работы с
оборудованием,
− легкость демонстрации, пример не требует специфических
устройств,
и может быть продемонстрирован практически на
любой машине,
− малый объем исходного текста, позволяющий изучить основные
принципы работы, не вдаваясь в подробности.
В целях экономии места и концентрации на основной теме опустим
незначительные, но необходимые детали – инициализацию и
освобождение памяти, получение параметров из реестра, обработку
ошибок, – заменив их комментариями, вкратце описывающими
процесс.
Начнем с рассмотрения функции DriverEntry – точки входа в
драйвер, служащей для инициализации программы. С нее начинается
выполнение драйвера. Функция устанавливает, какие системные вызовы
она будет обрабатывать и создает собственно виртуальный диск.
NTSTATUS
DriverEntry(
IN OUT PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
Аргументы:
DriverObject – указатель на объект, представляющий этот драйвер.
3.4 Драйвер виртуального диска
Рассмотрим конкретный пример – драйвер виртуального диска. По
мере необходимости будем снабжать текст программы необходимыми
описаниями.
Драйвер создает виртуальный диск, отформатированный по
умолчанию как FAT. Выбор этого типа драйвера обусловлен следующим:
− простота реализации, не требуется кода для работы с
оборудованием,
− легкость демонстрации, пример не требует специфических
устройств, и может быть продемонстрирован практически на
любой машине,
− малый объем исходного текста, позволяющий изучить основные
принципы работы, не вдаваясь в подробности.
В целях экономии места и концентрации на основной теме опустим
незначительные, но необходимые детали – инициализацию и
освобождение памяти, получение параметров из реестра, обработку
ошибок, – заменив их комментариями, вкратце описывающими процесс.
Начнем с рассмотрения функции DriverEntry – точки входа в
драйвер, служащей для инициализации программы. С нее начинается
выполнение драйвера. Функция устанавливает, какие системные вызовы
она будет обрабатывать и создает собственно виртуальный диск.
NTSTATUS
DriverEntry(
IN OUT PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
Аргументы:
DriverObject – указатель на объект, представляющий этот драйвер.
101
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »
