阅读:4410回复:35
USB驱动程序的安装问题
我的VID和PID正确,并且硬件也插入了,但是还是安装不了。安装过程中,系统居然提示指定位置找不到驱动程序,但是.inf和.sys同在一个目录下,并且.inf文件中的目标文件和源文件路径正确。
另外,是不是VID和PID正确后,驱动程序就可以找到指定的硬件了。 LIUTANG老兄,AddDevice,Createdevice如何跟踪,驱动程序运行于核心态,VC++的调试器不能用。另外,如果使用多个pipe是不是要在OnStartDevice例程的ActiveConfigure函数重新配置,由dirverwizard生成的能否直接使用。 -------------------------------------------------------- 可以使用,我参考那篇文章写出第一个框架的。 有时候用向导生成的驱动不一定能安装,大部分问题是出在OnStartDevice例程的ActiveConfigure函数里,因为ActiveConfigure函数有一个长度的参数,缺省为1200,但有时设备拒绝接收这么大的数,试着设小一点看看,可以用USBVIEW查出应该设置成多大,比那个值大就可以了。 另外,接口,端口等的设置一定要正确,别的就没什么了。 -------------------------------------------------------- 我的driver好象不是这个问题,OnStartDevice例程的ActiveConfigure函数的configsize我使用的是64(D12的endpoint0的maxsize为16)。 |
|
沙发#
发布于:2002-05-11 07:34
跟踪驱动程序可以使用SOFTICE,有很多地方可以下载中文使用说明。
如果设备有多个PIPE,在你需要使用其中一个时,应该定义一个变量,并做初始化。 ActivateConfiguration的MaxConfigSize指配置信息的最大长度,和PIPE0的MAXSIZE无关,按说一般情况是大于64的,不过看你的设备了。 |
|
板凳#
发布于:2002-05-11 10:55
请问哪里有softice的中文文档?
|
|
地板#
发布于:2002-05-11 18:24
????
|
|
地下室#
发布于:2002-05-11 22:33
关于在指定位置找不到驱动程序的问题还是INF写的不对
|
|
5楼#
发布于:2002-05-12 01:15
各位大侠:请紧急救助一把!
我用EZUSB开发了一套系统,用CYPRESS的开发套件,可在WIN2K下老说安装不成功,后来我我用CYPRESS的开发板直接Download下位机程序,然后操作系统提示发现新设备,并提示装载驱动程序,在它的提示下我一直NEXT到我写的inf文件,可系统还是提示说找不到相应的驱动程序。在万般无奈下,我想试试在系统的提示下也能否安装开发板的驱动程序,于是我把原来装好的开发板驱动程序从系统中删除(原来开发板的驱动程序我是用CYPRESS公司开发包中的Setup程序进行安装的),在重新把开发板插到PC机上,根据系统提示,我找到Ezusbw2k.inf可系统还是说无法找到相应的驱动程序,而且我是根据Ezusbw2k.inf的节把驱动程序放在同一个目录底下,但如果运行开发包中的Setup程序,则系统能很好的运行,这个问题捆绕了我很久,忠诚的希望你能帮助我 |
|
6楼#
发布于:2002-05-12 15:40
我也有相同的问题:在W2K下,系统也是找不到驱动。但是我将相同的INF文件、驱动程序使用在Win98下,采用相同的安装方法,一点问题也没有。请问WHY?
|
|
|
7楼#
发布于:2002-05-12 15:44
是找不到EZUSB.sys
|
|
8楼#
发布于:2002-05-12 15:45
或是PID,VID写的不对,看看PID,VID的两个字节的顺序问题
[编辑 - 5/12/02 by WOOD] |
|
9楼#
发布于:2002-05-12 15:49
关于2K下的问题,建议找一个2K下的INF看一下
|
|
10楼#
发布于:2002-05-12 16:22
首先,PID、VID绝对正确。
其次,我就是按照W2K下的INF文件修改的,结果在98下能用,在W2K下却不能用,见鬼! 不过同样谢谢你,请再帮我想想办法。 |
|
|
11楼#
发布于:2002-05-12 18:22
PID和VID没问题。GUID也没问题。
.inf文件中的SourceDisksNames和SourceDisksFiles节都注释掉了。 还是找不到。 |
|
12楼#
发布于:2002-05-12 18:59
把驱动程序copy到winnt\\system32\\drivers\\下,应该找得到啊?试一试吧! :)
|
|
|
13楼#
发布于:2002-05-12 20:52
把INF贴上来,一起研究
|
|
14楼#
发布于:2002-05-13 10:26
相应的FIRMWARE源程序为(与USBVIEW读出的一样,这是它配套给出的源程序):
code USB_DEVICE_DESCRIPTOR DeviceDescr = { sizeof(USB_DEVICE_DESCRIPTOR), USB_DEVICE_DESCRIPTOR_TYPE, SWAP(0x0100), USB_CLASS_CODE_TEST_CLASS_DEVICE, 0, 0, EP0_PACKET_SIZE, SWAP(0x0471), //PID SWAP(0x0666), //VID SWAP(0x0100), 0, 0, 0, 25 }; 相应的.inf文件为: ;; USBdriver.inf ;--------- Version Section --------------------------------------------------- [Version] Signature=\"$Windows 95$\" Provider=%ProviderName% Class=NewDeviceClass ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b} ;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- ;[SourceDisksNames] ;1 = \"Install Disk\",Disk1,, ;[SourceDisksFiles] ;USBdriver.sys = 1,, ;--------- ClassInstall/ClassInstall32 Section ------------------------------- ; 9X Style [ClassInstall] Addreg=Class_AddReg ; NT Style [ClassInstall32] Addreg=Class_AddReg [Class_AddReg] HKR,,,,%DeviceClassName% HKR,,Icon,,\"-18\" ;--------- DestinationDirs Section ------------------------------------------- [DestinationDirs] USBdriver_Files_Driver = 10,System32\\Drivers ;--------- Manufacturer and Models Sections ---------------------------------- [Manufacturer] %MfgName%=Mfg0 [Mfg0] %DeviceDesc%=USBdriver_DDI, USB\\VID_0471&PID_0666 ;---------- DDInstall Sections ----------------------------------------------- ; --------- Windows 9X ----------------- [USBdriver_DDI] CopyFiles=USBdriver_Files_Driver AddReg=USBdriver_9X_AddReg [USBdriver_9X_AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,USBdriver.sys HKR, \"Parameters\", \"BreakOnEntry\", 0x00010001, 0 ; --------- Windows NT ----------------- [USBdriver_DDI.NT] CopyFiles=USBdriver_Files_Driver AddReg=USBdriver_NT_AddReg [USBdriver_DDI.NT.Services] Addservice = USBdriver, 0x00000002, USBdriver_AddService [USBdriver_AddService] DisplayName = %SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\USBdriver.sys [USBdriver_NT_AddReg] HKLM, \"System\\CurrentControlSet\\Services\\USBdriver\\Parameters\",\\ \"BreakOnEntry\", 0x00010001, 0 ; --------- Files (common) ------------- [USBdriver_Files_Driver] USBdriver.sys ;--------- Strings Section --------------------------------------------------- [Strings] ProviderName=\"Your Company Name here\" MfgName=\"Name of HW Manufacturer here\" DeviceDesc=\"USB DRIVER\" DeviceClassName=\"Description of Device class here\" SvcDesc=\"Description of NT service here\" |
|
15楼#
发布于:2002-05-13 10:45
我的INF文件来了,说明:用的是EZUSB的AN2131QC,loader.sys是下载firmware的,ezusb.sys是功能驱动部分。
INF文件: [Version] Signature=\"$CHICAGO$\" Class=USB provider=%Cypress% LayoutFile=layout.inf [Manufacturer] %Cypress%=Cypress [Cypress] %USB\\VID_0547&PID_1234.DeviceDesc%=EZUSBDEV.Dev, USB\\VID_0547&PID_1234 %USB\\VID_0547&PID_2345.DeviceDesc%=EZUSB.Dev, USB\\VID_0547&PID_2345 [PreCopySection] HKR,,NoSetupUI,,1 [DestinationDirs] EZUSB.Files.Ext = 10,System32\\Drivers EZUSB.Files.Inf = 10,INF EZUSBDEV.Files.Ext = 10,System32\\Drivers EZUSBDEV.Files.Inf = 10,INF [EZUSB.Dev] CopyFiles=EZUSB.Files.Ext, EZUSB.Files.Inf AddReg=EZUSB.AddReg [EZUSB.Dev.NT] ; copyfiles commented out for Win2K to avoid user intervention during install ; CopyFiles=EZUSB.Files.Ext, EZUSB.Files.Inf AddReg=EZUSB.AddReg [EZUSB.Dev.NT.Services] Addservice = EZUSB, 0x00000002, EZUSB.AddService [EZUSB.AddService] DisplayName = %EZUSB.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\ezusb.sys LoadOrderGroup = Base [EZUSB.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,ezusb.sys [EZUSB.Files.Ext] ezusb.sys [EZUSB.Files.Inf] TouchPen.inf [EZUSBDEV.Dev] CopyFiles=EZUSBDEV.Files.Ext, EZUSBDEV.Files.Inf AddReg=EZUSBDEV.AddReg [EZUSBDEV.Dev.NT] ; copyfiles commented out for Win2K to avoid user intervention during install ; CopyFiles=EZUSBDEV.Files.Ext, EZUSBDEV.Files.Inf AddReg=EZUSBDEV.AddReg [EZUSBDEV.Dev.NT.Services] Addservice = EZUSBDEV, 0x00000002, EZUSBDEV.AddService [EZUSBDEV.AddService] DisplayName = %EZUSBDEV.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\loader.sys LoadOrderGroup = Base [EZUSBDEV.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,loader.sys [EZUSBDEV.Files.Ext] loader.sys [EZUSBDEV.Files.Inf] TouchPen.inf ;---------------------------------------------------------------; [Strings] Cypress=\"Cypress Semiconductor\" USB\\VID_0547&PID_1234.DeviceDesc=\"TouchPen Initialize---Designed by LXF\" USB\\VID_0547&PID_2345.DeviceDesc=\"TouchPen---Designed by LXF\" EZUSB.SvcDesc=\"Cypress General Purpose USB Driver (ezusb.sys)\" EZUSBDEV.SvcDesc=\"Cypress General Purpose USB Driver w/ Keil Monitor (loader.sys)\" |
|
|
16楼#
发布于:2002-05-13 21:58
TO:liuxf66
1234和2345?EZUSB有这种PID吗? |
|
17楼#
发布于:2002-05-13 22:01
TO:qinxy
VID_0471&PID_0666好象也不是EZUSB最初始的PID吧 |
|
18楼#
发布于:2002-05-13 22:46
这个VID、PID无所谓的,可以任意指定,只要INF文件中的VID、PID和EEPROM以及firmware中的VID、PID相同即可。我是这样理解的。
另外,我换了个VID_0547、PID_0080之类比较“正常”的号也不行,请帮忙看看INF文件中别的地方有没有问题。谢谢! |
|
|
19楼#
发布于:2002-05-14 08:14
你用EEPROM装载FIREWARE?
|
|
上一页
下一页