2012-02-21 241 views
0

我有CDC設備。我爲他開發驅動程序。 ini文件的 部分: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 

安裝功能有碼:上desctop(PC)總是

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 

此代碼正常工作,但在安裝設備時在筆記本電腦(筆記本)只有一段工作(由系統調用的安裝功能)。這些mashines的操作系統是Windows7。 但是如果我從我的程序調用安裝功能(爲調試創建)此代碼始終正常工作(在筆記本電腦和PC上)。 有沒有人有關於這個問題的想法?

+0

錯誤代碼31表示「此設備無法正常工作,因爲Windows無法加載此設備所需的驅動程序。」 - 機器是否運行64位操作系統?如果是這樣,它需要關閉驅動程序簽名驗證並啓用測試簽名。 – Polynomial 2012-02-21 13:21:09

+0

我的動作:1)bcdedit/set testsigning 2)重新啓動3)在載入時按f8並選擇不需要驅動程序檢查但這沒有幫助我。 – user1025874 2012-02-22 04:50:06

回答

0

你說桌面和筆記本電腦,但我不認爲電腦的形狀很重要。一個32位操作系統,另一個是64位?我沒有看到64位的INF部分。