Dmitriy_V
Nov 6 2006, 15:55
Прописываю в устройстве следующие строки
code const BYTE USB_MfrStr[] = {0x1E,0x03,'D',0,'m',0,'i',0,'t',0,'r',0,'i',0,'y',0,' ',0,'D',0,'e',0,'v',0,'i',0,'c',0,'e',0};
code const BYTE USB_ProductStr[] = {0x1E,0x03,'U',0,'S',0,'B',0,' ',0,'M',0,'a',0,'k',0,'e',0,'t',0,' ',0,'P',0,'l',0,'a',0,'t',0};
code const BYTE USB_SerialStr[] = {0x0A,0x03,'1',0,'1',0,'1',0,'1',0};
USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,US
B_PwAttributes,USB_bcdDevice);
При подключении устройства на короткий момент выскакивает USB_ProductStr[], но после установке драйвера при вызове следующей функции:
SI_GetProductString(i,@S,0x01);
выдается описание устройства как USBXpress Device которое забито в драйвере.
SI_GetProductString(i,@S,0x00); нормально выводит тот серийный номер который я забиваю в устройство.
Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?
Если вдруг у кого-нибудь есть полное описание функции SI_DeviceIOControl, то дайте пожалуйста ссылку или прикрепите его к ответу.
Цитата
При подключении устройства на короткий момент выскакивает USB_ProductStr[], но после установке драйвера при вызове следующей функции:
SI_GetProductString(i,@S,0x01);
выдается описание устройства как USBXpress Device которое забито в драйвере.
SI_GetProductString(i,@S,0x00); нормально выводит тот серийный номер который я забиваю в устройство.
Так и должно быть, потому что скорее всего данная функция вообще не обращается к устройству, а вызывает фунции типа SetupDiXXX.
0х01 - значение флага SI_RETURN_DESCRIPTION, и функция возвращает описание устройства, указанное в реестре.
Чтобы изменить на нужное вам, отредактируйте INF файл
[Strings]
..........
DESCRIPTION="USBXpress Device"
FRIENDLYNAME="USBXpress Device"
..........
Одно значение из этих двух параметров соответствует указанному флагу.
Цитата
Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?
Можно. Пользуйтесь SetupApi.
Возможно даже прочитать все дескрипторы вашего устройства, см. пример diview.exe из DDK.
Dmitriy_V
Nov 27 2006, 01:20
[quote name='Седой' date='Nov 8 2006, 10:58' post='173479']
[quote]
[quote]Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?[/quote]
Можно. Пользуйтесь SetupApi.
Возможно даже прочитать все дескрипторы вашего устройства, см. пример diview.exe из DDK.
[/quote]
Не могу найти. Если можно дайте прямую ссылку на пример.