Что-то замучился с простеньким вроде бы вопросом.
Суть:
Есть pnp-драйвер на несколько виртуальных устройств, при установке первого устройства все проходит нормально, но при установке последующих устройств происходит обновление предыдущих установленных, это видно по виндовому диалогу XP о неподписанном драйвере. В итоге например, при установке 5-го устройства(по порядку) мне приходится соответственно 5 раз подтверждать установку!
Любой из компилированых примеров DDK раздела setup творит тоже самое, что и написанная мной прога инсталяции.
Пробовал последовательность:
SetupDiGetINFClass
SetupDiCreateDeviceInfoList
SetupDiCreateDeviceInfo
SetupDiCallClassInstaller(DIF_REGISTERDEVICE)
SetupDiSetDeviceInstallParams
SetupDiBuildDriverInfoList(SPDIT_CLASSDRIVER)
SetupDiEnumDriverInfo(SPDIT_CLASSDRIVER)
SetupDiGetDriverInfoDetail
SetupDiSetSelectedDriver
SetupDiCallClassInstaller(DIF_REGISTER_COINSTALLERS)
SetupDiCallClassInstaller(DIF_INSTALLINTERFACES)
SetupDiCallClassInstaller(DIF_INSTALLDEVICE)
SetupDiInstallDevice
SetupDiGetDeviceInstallParams
,причем в разных вариациях с копированием и без копирования файлов драйвера. Результат к сожалению один и тот же.
А также пробовал использовать UpdateDriverForPlugAndPlayDevices.
Но самое то интересное, что когда вручную средствами системы добавляю устройство из списка для указанного драйвера,
то всё ставится на ура и предыдущим установленным устройствам не требуется подтверждение на переустановку.
Как же это в виндах то реализовано?
Может кто сталкивался с этим, или знает в каком месте я косячу.
Буду признателен за любую инфу.