2012-02-21 3 views
0

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

[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 

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

+0

Код ошибки 31 означает «Это устройство не работает должным образом, поскольку Windows не может загрузить драйверы, необходимые для этого устройства». - У машины работает 64-разрядная ОС? Если это так, потребуется проверка проверки подлинности драйвера, а проверка подписи включена. – Polynomial

+0

Мои действия: 1) bcdedit/set testsigning on 2) перезагрузка 3) нажмите f8 при загрузке и выберите «Не нужно проверять драйвер». Но это не помогает мне. – user1025874

ответ

0

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

Смежные вопросы