Использование NuMega DriverStudio для написания WDM-драйверов | страница 22



• внутреннее управление устройством (internal device control) — обработка запросов от других драйверов устройств.

Рис 14. Шестой шаг DriverWizard


На шестом шаге DriverWizard задает вопросы о способе обработки запросов. Опция Select queuing method выбирает, каким образом будут буферизироваться запросы на ввод-вывод:

• None — запросы не буферизируются в очереди. Эту опцию лучше не выбирать.

• DriverManaged — драйвер содержит одну или более одной очередей, в которой сохраняются запросы на ввод-вывод, пришедшие от других драйверов или системы.

• SystemManaged — драйвер использует только одну очередь сообщений.

Также надо выбрать, будут ли буферизироваться запросы на чтение и запись. Как было сказано ранее, устройство может одновременно выполнять какую-то одну операцию, например, только чтение или только запись, или может выполнять несколько операций сразу. Чтобы гарантировать нормальную работу устройства в этом случае, следует буферизировать (Serialize) поступающие запросы на чтение и запись, помещая их в очередь. Установка флажков Seralize all Read requests и Serialize all Write requests позволяет буферизировать все запросы на чтение и запись, поступающие в объект устройства.

Рис. 15 — Седьмой шаг DriverWizard.


На седьмом шаге предлагается задать параметры, которые драйвер будет загружать из реестра Windows при старте, когда система загружается. При этом задается параметр реестра, имя переменной, куда сохраняется его значение, тип данного параметра и его значение по умолчанию. Если не менять настройки, то во время загрузки драйвер читает из реестра параметр BreakOnEntry типа boolean, сохраняет его значение в переменной m_BreakOnEntry. Значение по умолчанию для параметра — false. Обычно m_BreakOnEntry используется в отладочных целях.

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

При помощи кнопок Add, Edit и Delete можно соответственно добавлять, редактировать и удалять параметры.

Рис. 16 — Восьмой шаг DriverWizard.


Восьмой шаг DriverWizard — один из самых важных моментов в разработке драйвера PCI–устройства при помощи DriverWorks. Поэтому окно мастера несет огромное количество информации и элементов управления.

На данном шаге предлагается изменить имена классов устройства для данного драйвера. В списке в верхней части окна следует выбирать класс устройства, который следует переименовать, и, нажав на кнопку Rename, можно задать новое имя класса устройства.