драйвер устройства USB CDC - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть устройство CDC.Я разрабатываю для него драйвер.Часть ini-файла:

[ClassInstall32]
CopyFiles=ClassInstall.CopyFiles
AddReg=ClassInstall.AddReg

[ClassInstall.CopyFiles]
My_USBDriver.dll,,,0x2000

[ClassInstall.AddReg]
HKR,,,,%DEVICEMANAGERCATEGORY%
HKR,,Icon,,"102"
HKR,,Installer32,,"My_USBDriver.dll,MyUSBPortsClassInstaller" 
HKR,,NoInstallClass,,1

[DriverInstall] 
include=mdmcpq.inf
CopyFiles=DriverInstall.CopyFiles
AddReg=DriverInstall.AddReg 

[DriverInstall.CopyFiles]
usbser.sys,,,0x2000

[DriverInstall.AddReg]
HKR,,DevLoader,,*ntkern 
HKR,,NTMPDriver,,%DRIVERFILENAME%.sys 

[DriverInstall.Services] 
AddService=usbser, 0x00000002, DriverService

[DriverService] 
DisplayName=%SERVICE% 
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%DRIVERFILENAME%.sys 

Функция установщика имеет код:

c->ConnectionIndex = iPort;
c->SetupPacket.bmRequest = 0x80;
c->SetupPacket.wValue = (USB_STRING_DESCRIPTOR_TYPE<<8)|descriptorNum;
c->SetupPacket.wLength = n;
Success = DeviceIoControl(
    hRoot,
    IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION,
    c, n,
    c, n,
    &returnBytes,
    NULL);
///Sometime GetLastError == 31 // Device not working

Этот код обычно работает всегда на десктопе (ПК), но только иногда работает на ноутбуке (ноутбуке) во времяустановка устройства (вызов функции установки системой).ОС этих машин - Windows7.НО, если я вызываю функцию установки из моей программы (созданной для отладки), этот код всегда работает правильно (на ноутбуке и на компьютере).У кого-нибудь есть идеи по этому вопросу?

1 Ответ

0 голосов
/ 15 сентября 2015

Вы сказали «Рабочий стол и ноутбук», но я не думаю, что форма компьютера имеет значение.Одна 32-битная ОС, а другая 64-битная?Я не вижу 64-битный раздел INF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...