Программирование драйверов Windows


Инсталляция с использованием INF файла - часть 3


По завершении работы Мастера Установки драйвер готов к использованию и обращению к нему из консольного приложения, описанного ниже.

Результаты работы Мастера Установки с записями Системного Реестра следует искать в разделе HKLM\System\CurrentControlSet\Services\Class\Unknown

(для Win98) и в разделе HKLM\System\CurrentControlSet\Services\Unknown\Example

(для Windows 2000/XP/Server 2003).

Следует отметить, что информацию о драйвере Example.sys после установки можно увидеть в Настройках Системы (Система/Диспетчер Устройств в Windows NT, либо Система/Устройства в Windows 98), однако многие информационные поля там не будут определены (в случае Windows NT таких полей будет меньше). Это объясняется тем, что информация, для которой указано "неизвестна" должна поступать из файла драйвера, для чего в нем должны быть предусмотрены информационные ресурсы, обычно размещающиеся в .rc файле проекта. В данном проекте такого файла нет, поэтому не вся желаемая информация предоставляется системным службам.

Возникает вопрос, почему драйвер, предназначенный для NT, запускается и работает под Windows 98?! Ответ прост. В Windows 98 установлен модуль ntkern.vxd, который так выполняет свою работу, что драйверам NT кажется, что они имеют дело с NT-системой, К сожалению, возможности его не безграничны, иначе Windows 98 была бы Windows NT.

Другой вопрос, который может возникнуть после описанной процедуры: почему мы смогли установить драйвер, в сущности, "никакого" устройства?! Ответ также несложен. Поскольку к системе могут подключаться устройства, не поддерживающие PnP (legacy devices), которые не могут быть автоматически обнаружены и которые не могут быть подключены (загружены их драйверы) иначе, чем по указанию администратора системы, то фирма Microsoft обязана предоставить способ установки драйверов "по желанию". Что и произошло в нашем случае.

При установке драйвера под операционной системой Windows2000/XP/Server 2003 может появиться сообщение следующего вида (рисунок 3.1).
<


Начало  Назад  Вперед