IRP
Постоялец
Offline
|
 |
« Ответ #1 : 09-06-2006 11:31 »  |
|
По хорошему это должна сделать система! Что нужно для полного удовлетворения системы сказать не могу, но: 1. Создать записть в реестре о твоем драйвере. Можно обычной CreateService() функцией 2. Создать записись о USB устройстве. - ключ в ветке HKLM\System\CurrentControlSet\Enum\Usb\Vid_xxxx&Pid_yyyy\3&267a616a&0\ где xxxx и yyyy - HardwareId твоей железки! 3&267a616a& - ParentIdPrefix - назначается энумиратором USB железок 0 - InstanceID - также назначается энумиратором. Если вставишь эту же железку в другой порт, то создастся еще один ключ типа HKLM\System\CurrentControlSet\Enum\Usb\Vid_xxxx&Pid_yyyy\3&267a616a&1\ но InstanceID будет уже равен 1. Система ищит драйвера, если не может найти этот ключ в реестра для твоего устройства. Если он уже будет создан - то драйвер загрузится тихо, без всяких визардов. 3. Далее заполнить этот ключ значениями... HardwareID CompatibleIDs и.т.д. по образу и подобию как это сделано для других драйверов.
НО как узнать какое значение имеет ParentIdPrefix - не знаю... Так что лучше чтобы это все сделала система!
|