2.2 Компиляция и установка драйвера.
2.2 Компиляция и установка драйвера.
Проект, сгенерированный DriverWizard, находится в каталоге XDSP. В этом каталоге расположены файлы рабочего пространства (Workspace) VC++: XDSP.dsw, XDSP.ncd и XDSP.opt и два каталога – sys и exe. Здесь же находится файл XDSPioctl.h. В нем описаны управляющие коды, используемые при обращении к драйверу с помощью функции DeviceIOControl.
В каталоге sys находится сгенерированный DriverWizard скелет драйвера и все необходимые для компиляции файлы. В нашем случае, имеем файлы:
Function.h
заголовочный файл, предназначенный для определения функций, входящих в драйвер;
Makefile, Sources
файлы с информацией, необходиой для компиляции проекта в VC++.
XDSP.h , XDSP.cpp
файлы, содержащие класс драйвера.
XDSP.plg, XDSP.dsp
проект VC++;
XDSP.inf
скрипт для инсталляции драйвера;
XDSP.rc
файл ресурсов проекта. В основном, содержит информацию о разработчике драйвера.
XDSPDevice.cpp, XDSPDevice.h
файлы, содержащие класс устройства.
В каталоге ехе находится исходный код консольного приложения TextXDSP, предназначенного для тестирования работы драйвера. При помощи него можно убедится, правильно ли установлен драйвер в системе, а иногда даже проверить, как он работает. Хотя для более-менее сложного драйвера придется писать программу тестирования отдельно. В каталоге присутствуют файлы:
Makefile,Sources
файлы с информацией, необходиой для компиляции проекта в VC++.
Test_XDSP.plg, Test_XDSP.dsp
проект VC++;
Test_XDSP.cpp
исходный текст приложения.
Теперь самое время открыть проект драйвера в среде VC++ и посмотреть, что же мы имеем. Для этого надо запустить VC++ и открыть проект, используя команду File?Open Workspace. В появившемся диалоговом окне открытия файла выберите файл XDSP.dsw. Если все вышеописанные действия выполнены правлиьно, то проект откроется в среде VC++. Для того, чтобы проект скомпилировался правильно, следует установить переменные среды DriverStudio. Для этого нужно выбрать пункт меню DriverStudio?Driver Build Settings: На экране появится диалоговое окно установки переменных среды:
Рис.25 — установка значений переменных среды.
Для компиляци драйвера важны две переменные:
1. CPU — определяет архитектуру процессора, под которую компилируется драйвер. Не стоит забывать, что Win2000 может работать на платформах i386 (классические процессоры Intel), IA64 (64-разрядные процессоры Intel) и Alpha. В нашем случае надо установить значение i386.
2. BASEDIR — путь к пакету DDK, установленному в системе. Для того, чтобы изменить значение одной из этих переменных, надо нажать кнопку Edit: диалогового окна. Появится окно установки значений переменной.
Установив требуемое значение, нажмите кнопку Set. Чтобы закрыть окно – Exit. Задав переменные среды, нажмите кнопку Accept. Теперь можно компилировать проекты.
Драйвер может быть скомпилирован в двух конфигурациях: Checked и Free.
Checked — отладочный вариант драйвера. Такой драйвер несет в себе информацию для отладки. Естественно, что для отладки драйверов непригодны обыкновенные отладчики, входящие в комплект сред VC++, Delphi и т.п. Все они работают в 3-м кольце привилегий процессора и даже не догадываются, какие драйвера есть в системе. Для отладки драйверов применяются специальные отладчики, работающие в режиме ядра ОС. В качестве отладчика лучше всего использовать SoftIce, поставляемый с DriverStudio.
Free — драйвер не несет отладочную информацию.
Активную конфигурацию можно выставить при помощи пункта меню Build?Set Active Configuration:
Особенность сгенерированного DriverWizard рабочего пространства состоит в том, что оно содержит два проекта: XDSP и Test_XDSP. Как нетрудно догадаться, XDSP — это проект драйвера, а Test_XDSP — приложения тестирования. Информация о проектах выводится в окне Workspace среды VC++.
В каждый отдельный момент времени можно компилировать только активный проект. Имя активного проекта выводится жирным шрифтом. Сделать активным другой проект просто: надо щелкнуть на его названии правой клавишей мыши и в выпавшем контекстном меню выбрать пункт Set as Active Project (Сделать активным проектом).
Теперь можно выполнять компиляцию проекта. Если в процессе компиляции появляются сообщения об ошибках — значит вы не совсем точно следовали инструкциям, изложенным выше: или не скомпилировали библиотеки DriverWorks, или не установили переменные среды.
После компиляции драйвера следует скомпилировать тестовое приложение Test_XDSP. Оно должно скомпилироваться без каких-либо проблем.
Если все операции прошли гладко — то можете себя поздравить: драйвер готов к работе. Хотя, естественно, он не выполняет никаких разумных действий. Теперь можно протестировать наш драйвер.
После компиляции мы получили файл драйвера XDSP.sys. Он находится в каталоге …/XDSP/sys/obj/i386. В этом каталоге будут находится скомпилированные DriverStudio драйвера. Но для инсталляции кроме самого драйвера еще нужен скрипт XDSP.inf. Он обычно находится в самом каталоге XDSP.
Итак, для установки драйвера в системе предполагается наличие в системе PCI — карточки XDSP-680. После установки карточки (или перепрограммирования ее из среды Foundation) следует перезагрузить компьютер. При загрузке компьютер обнаружит новое устройство и потребует предоставить драйвер для него. Если же не потребует — значит в системе есть более ранняя версия драйвера. Для этого надо открыть список устройств, установленных на компьютере и обновить драйвер для устройства. Для этого надо указать путь к скрипту xdsp.inf и к файлу драйвера xdsp.sys.
Если же Вы разрабатываете драйвер, который не управляет каким-либо устройством или это устройство не является PnP — необходимо просто установить драйвер стандартными средствами Windows: Пуск?Настройка?Панель управления?Установка оборудования. Когда Windows выведет полный список типов устройств и спросит, какое устройство Вы хотите установить, выберите свой тип устройства.
Если разработанный Вами драйвер не подходит под какой-либо из известных классов устройств, то "Другие устройства" также являются неплохим вариантом. Такая ситуация тоже случается нередко — мне, например, приходилось разрабатывать драйвер для программатора микроконтроллеров, подключавшегося через параллельный порт. Конечно же, он не подходил под какой-либо из известных в Windows типов устройств.
После того, как драйвер будет установлен, нужно будет проверить его функционирование. Запустите скомпилированный файл test_xdsp.exe с параметрами test_xdsp r 32 (команда прочитать 32 байта из устройства). Должно появиться сообщение, похожее на это:
C:XDSPexeobjchki386>Test_XDSP.exe r 32
Test application Test_XDSP starting…
Device found, handle open.
Reading from device – 0 bytes read from device (32 requested).
–, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –, –,
–, –, –, –, –, –,
В данном случае приложение установило связь с драйвером и прочитало из него 32 байта. Функция чтения в драйвере не определена, поэтому, естественно, драйвер вернет абракадабру. Если же будет получено сообщение вида
C:…ProjectsXDSPdrvexeobjchki386>Test_XDSP.exe r 32
Test application Test_XDSP starting…
ERROR opening device: (2) returned from CreateFile
Exiting…
— то приложение не смогло установить связь с драйвером. Следует попробовать переустановить драйвер.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Компиляция и установка ядра
Компиляция и установка ядра До сих пор мы рассматривали опции ядра, имеющие отношение к сетевым протоколам и аппаратным средствам, используемым для соединения вашего компьютера с сетью. Компиляция ядра непосредственно не связана с обеспечением сетевого взаимодействия,
2.3 Модель мини-драйвера IDE
2.3 Модель мини-драйвера IDE В архитектуре Windows Server 2003 поддерживается новая модель мини- драйвера IDE, которая должна заменить существующую модель драйвера IDE. Новый драйвер порта, предоставляемый Microsoft, работает быстрее, обслуживает несколько каналов и позволяет отказаться
5.5.2.4. Проверка драйвера
5.5.2.4. Проверка драйвера После загрузки убедитесь, что драйвер установлен и используется. Нажмите ‹Alt+F2›, введите system-config-display, перейдите в раскрывшемся окне на вкладку Оборудование и щелкните на кнопке Настроить напротив строки с идентификацией видеокарты. В
Установка драйвера из INF-файла
Установка драйвера из INF-файла Рассмотрим ситуацию, когда для установки оборудования используется набор из INF-файлов.Откройте Панель управления и запустите механизм Диспетчер устройств. В результате откроется окно, в котором вы можете видеть список всех устройств,
Установка драйвера с помощью программы установки
Установка драйвера с помощью программы установки Часто для установки старого оборудования используется программа установки, и стандартный подход установки драйверов, описанный выше, при этом не подходит. Однако при запуске программы установки она отказывается
16.3. Откат драйвера
16.3. Откат драйвера Иногда приходится не только ставить драйверы с нуля, но и обновлять старые драйверы. Необходимость установки нового драйвера объясняется достаточно просто: новый драйвер практически всегда представляет собой исправленную версию старого драйвера
Драйвера и их назначение
Драйвера и их назначение Для того чтобы подключить оборудование к компьютеру, недостаточно просто физически подсоединить его к системному блоку. Чтобы операционная система распознала это оборудование, необходимо наличие специальной программы – драйвер. Только после
Установка драйвера и настройка источников данных
Установка драйвера и настройка источников данных Дистрибутив драйвера состоит из одного исполнимого файла с именем ibgem_21_desk.exe (для настольной редакции драйвера версии 2.1). Чтобы установить драйвер, необходимо запустить этот файл.Существует два способа создания
Как писать драйвера (часть 2)
Как писать драйвера (часть 2) Прежде, чем хвататься за описание самого драйвера, давайте определимся с типами существующих драйверов.По существующему в DDK разделению сам Microsoft подразделяет драйвера на следующие типы:– Kernel-Mode Drivers;– Kernel Streaming Drivers;– Graphics Drivers;– Network
Как писать драйвера (часть 4)
Как писать драйвера (часть 4) В прошлый раз мы заготовили списки необходимых функций, зарегистрировали их, а сегодня рассмотрим их
Как писать драйвера (часть 5)
Как писать драйвера (часть 5) Итак, мы возвращаемся к драйверам.Справедливости ради, стоит отметить, что на сайте эта тема – одна из самых популярных, так что, кому нужны более глубокие знания, может обращаться к нам на форум, там обсуждаются конкретные проблемы.Сегодня мы
Часть 2. API для WDM драйвера.
Часть 2. API для WDM драйвера. Большинство функций драйверного API, которые нас интересуют, предоставляются модулем ntoskrnl.exe.Для их использования надо сделать следующее:1) Объявить типы данных и определить константы.Большинство определений для C находятся в файлах ntdef.h и wdm.h.2)
Откат драйвера
Откат драйвера Иногда случается, что при установке новой версии драйвера устройства, например видеокарты, система начинает работать нестабильно. Естественно, это недопустимо, поскольку создает множество неудобств. Все ухудшается еще и тем, что, как правило, дистрибутивы