Re[3]: Инсталятор драйвера на базе inf файла
От: Геннадий Майко США  
Дата: 03.11.06 15:15
Оценка:
Здравствуйте, V-ctor,

VC>>>Самое очевидное решение какое я увидел это проделать такое с помощью devcon от MS.

VC>>>Там есть ключ install, но вот беда , точнее 2 варианта
VC>>>1)если я вызываю инсталл (предварительно устройство не обнаружено системой никак)
VC>>>devcon install inf_fil.inf PCI\VEN_1999
ГМ>>--
ГМ>>Самое очевидное решение — это устанавливать драйвер PCI устройства с помощтю корректно
ГМ>>написанного для него *.inf файла. При установке платы в систему, после появления диалога Hardware Wizzard,
ГМ>>Вы указываете путь к этому *.inf файлу и система копирует нужные файлы в нужные места и запускает
ГМ>>драйвер и co-installers самостоятельно.
VC>Ну да всеверно, щас таки делаем, но хочется автоматизировать процесс путем запуска одного какого-то файла
--
В свое время мы написали процедуру инсталляции PCI драйвера (на основе devcon с небольшой модификацией — пример devcon всегда устанавливает драйвер в ROOT из-за флага DICD_GENERATE_ID при вызове функции SetupDiCreateDeviceInfo; поэтому мы самостоятельно генерировали строку full device instance ID для этой функции, чтобы установить драйвер в ветку PCI устройств). Но при старте драйвера мы не получали PCI ресурсы, скорее всего из-за того, что при установке драйвера мы не могли точно указать SPDRP_LOCATION_INFORMATION (см. SetupDiSetDeviceRegistryProperty функцию) в registry, поэтому сразу же после инсталляции дайвера нам нужно было его перестартовать (аналогично примеру из devcon), чтобы все в конце-концов работало корректно.

Честно говоря, мы забросили идею автоматизации процесса установки драйвера из-за того, что слишком много условий нужно было бы отслеживать в таком приложении — стартуется ли она без установки платы или с уже установленым устройством; установлен ли уже наш или какой-то другой драйвер для нашего устройства; работает ли уже этот драйвер или нет и т.д. Гораздо проще оказалось поручить все это системе.

Почитайте так же статью "Writing a Device Installation Application" в MSDN, может быть, имеет смысл устанавливать драйверы так, как там рекомендуется?

С уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.