ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 июля
1135825 Топик полностью
UniSoft (01.10.2021 06:21, просмотров: 172) ответил Ale3000 на Да. И ещё для каждого экземпляра устройства драйверы надо заново ставить.
Это потому, что у вас видимо SerialNumber меняется, 

windows видит новый путь к устройству (а серийный номер - есть часть этого пути) и соответственно устанавливает для него драйвер.

Вот пример

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_xxxx&PID_xxxx\sssssssss\

где sssssssss - и есть ваш серийный номер (тоже относится и к пути по которому CreateFile() открывает устройство).

Выход прост:

Либо можно просто не менять серийный номер, прописав статическую строку (но тут есть одна проблема, а что, если у вас в комп воткнуто более одного такого устройства? Ведь подразумевается, что серийник будет уникальным для каждого экземпляра устройства).

И второй, самый правильный, это просто отключить серийник, обнулив индекс дескриптора серийного номера (iSerialNumber) в Device Descriptor,

тогда windows будет сам генерировать sssssssss (на основе инфы о порте куда вставлено устройство, типа: 5&1022DFB2&2&1),

и драйвер будет устанавливаться лишь один раз (ну а так-же если воткнете устройство в другой порт, но опять же один раз),

ну и все подключенные устройства будут иметь свой уникальный путь.

P.S.: Эта штука собственно называется "Instance ID": "USB\VID_xxxx&PID_xxxx\sssssssss"