У меня есть устройство 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), этот код всегда работает правильно (на ноутбуке и на ПК). У кого-нибудь есть идеи по этой проблеме?
Код ошибки 31 означает «Это устройство не работает должным образом, поскольку Windows не может загрузить драйверы, необходимые для этого устройства». - У машины работает 64-разрядная ОС? Если это так, потребуется проверка проверки подлинности драйвера, а проверка подписи включена. – Polynomial
Мои действия: 1) bcdedit/set testsigning on 2) перезагрузка 3) нажмите f8 при загрузке и выберите «Не нужно проверять драйвер». Но это не помогает мне. – user1025874