阅读:2842回复:9
如何解决“没有替设备实例指定一个功能驱动程序的错误”
我用的是DriverWorks做的USB设备驱动程序,硬件那边不是我做的,要实现中断写和批量读的功能。我参
照driverworks里的实例和武安河那本新书的例子对生成的驱动程序修改后,已经编译生成了sys文件。而 且参照了不少的inf文件修改了生成的inf文件,但是现在安装时出现了: 安装设备时,出现了一个错误 安装失败,因为没有替设备实例指定一个功能驱动程序的错误 我已经在论坛上搜索了有关这方面的帖子,但是也没有具体的解决方法。 我不知道该如何解决。 我是个新手,对开发工具也不熟悉,恳请各位帮帮我,多谢了! 以下是我的inf文件的内容。 ;--------- Version Section --------------------------------------------------- [Version] Signature=\"$CHICAGO$\" Provider=%MfgName% LayoutFile=layout.inf ; If device fits one of the standard classes, use the name and GUID here, ; otherwise create your own device class and GUID as this example shows. Class=USBDataCollectingDevice ClassGUID={36FC9E60-C465-11CF-8056-444553540000} ;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- ; These sections identify source disks and files for installation. They are ; shown here as an example, but commented out. [SourceDisksNames] 1 = \"Install Disk\",,, D:\\DataCollecting\\sys\\objchk\\i386 [SourceDisksFiles] DataCollecting.sys = 1,, [Philips] %USB\\VID_0471&PID_0666.DeviceDesc%=DataCollecting.DDI, USB\\VID_0471&PID_0666 ;--------- ClassInstall/ClassInstall32 Section ------------------------------- ; Not necessary if using a standard class ; 9X Style [ClassInstall] Addreg=Class_AddReg ; NT Style [ClassInstall32] Addreg=Class_AddReg [Class_AddReg] HKR,,,,%USBDataCollectingDevice% HKR,,Icon,,\"-20\" ;--------- DestinationDirs Section ------------------------------------------- [DestinationDirs] DataCollecting_Files_Driver = 10,System32\\Drivers DataCollecting_Files_Inf = 10,INF ;--------- Manufacturer and Models Sections ---------------------------------- [Manufacturer] %MfgName%=Philips [PreCopySection] HKR, NoSetupUI,,1 ;---------- DDIInstall Sections ----------------------------------------------- ; --------- Windows 9X ----------------- ; Experimentation has shown that DDInstall root names greater than 19 characters ; cause problems in Windows 98 [DataCollecting_DDI] CopyFiles=DataCollecting_Files_Driver AddReg=DataCollecting_AddReg ; --------- Windows NT ----------------- [DataCollecting_Dev.NT] CopyFiles=DataCollecting_Files_Driver AddReg=DataCollecting_AddReg [DataCollecting_Dev.NT.Services] Addservice = DataCollecting, 0x00000002, DataCollecting_AddService [DataCollecting_AddService] DisplayName = %DataCollecting_SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\DataCollecting.sys LoadOrderGroup = Base [DataCollecting_AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,DataCollecting.sys HKLM,\"System\\Currentcontrolset\\Services\\DataCollecting\\Parameters\",\"MaximumTransferSize\",0x1 0001,65536 HKLM,\"System\\Currentcontrolset\\Services\\DataCollecting\\Parameters\",\"DebugLevel\",0x10001,2 ; --------- Files (common) ------------- [DataCollecting_Files_Driver] DataCollecting.sys ;--------- Strings Section --------------------------------------------------- [Strings] MfgName=\"Philips\" Philips=\"Philips Semiconductors\" USB\\VID_0471&PID_0666.DeviceDesc=\"Philips PDIUSBD12 DataCollecting Board\" DataCollecting_SvcDesc=\"DataCollecting.Sys PDIUSBD12 Bulk&Interrupt IO Driver\" 请各位高手指导。 |
|
最新喜欢:![]() |
沙发#
发布于:2003-10-08 19:16
Class=USBDataCollectingDevice//这里的USBDataCollectingDevice是你自定义的设备类?建议使用usb
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}//去掉这一行试试 还有检查一下你固建立的vid和pid与此处的USB\\VID_0471&PID_0666是否一致。 |
|
板凳#
发布于:2003-10-09 10:09
我一开始在2000下装d12驱动是好像也有这样的提示,折腾了好几天也没搞定。郁闷。。。
|
|
|
地板#
发布于:2003-10-09 10:34
jinghuiren:
你好!我经常在这个论坛看到你给大家解决问题!谢谢你的帮助。 我已经按照你的提示做了,结果还是那样的提示对话框。 我现在用的是买的D12的开发板,所以硬件应该没有问题的,我用这个板子带的inf可以成功安装。但是我自己针对我要实现的功能的驱动程序写的inf却不行,我不知道该怎么办,请你再帮我想想办法吧。谢谢! pandengzhe: 你好!我想你的问题已经解决了,能否指导一下我,谢谢你! 各位高手,等待你们给我指点一二,不胜感谢! |
|
地下室#
发布于:2003-10-09 10:49
看不出有什么问题了,如果你固件里的vid和pid和inf中的一样,并且你确定固件枚举没问题,那不应该出现这样的问题的,所以我再次建议你检查一下固件里的vid&pid和inf中的时候一致,这个是最可能出现的问题,还有就是把原来的inf文件和你现在的做比较,看有什么区别,其实你可以直接在原来的inf文件中修改的。
|
|
5楼#
发布于:2003-10-09 10:53
wwmmjt:
我用的类似周立功的板子,由98下源码,在2000下始终装不上,你成功了末?如果成功了,可否把驱动传给我,没源码也行。谢谢! 这里人气不佳啊。。。 |
|
|
6楼#
发布于:2003-10-09 15:04
jinghuiren多谢你的一再指教。多多帮助我吧。老师催的很紧。我真的是没有办法。
为了实现我现在要求的功能,另一个同学专门做了板子,他firmware也还没有调试通过。 买的开发板是做测试用的。我把板子附带的inf贴出来你看看。我觉得我已经基本参照它做修改了。 由于买的板子的驱动是用ddk写的,我不知道inf是不是应该和我用DriverWizard生成的inf有什么差别。 我又重新安装了,和昨天的情况有一点差别。我指定了一个sys的安装路径可是它提示说找不到,我下一步后就出现了“安装设备时,出现了一个错误 安装失败,因为没有替设备实例指定一个功能驱动程序”的错误。我看了注册表里没有创建USB\\VID_0471&PID_0666项,sys32的drivers里也没有我的DataCollecting.sys文件。但是INF目录里有了OEM5.inf。现在应该怎么办呢。 我可以看到我的USBDevice上有个黄色的惊叹号,在论坛上看到有人说是初始化错误,我不明白,能帮我解释一下吗? 另外,在控制面板里的卸载硬件中我可以看见我的USBDevice是灰色的,和系统本身的USBRootHub前的符号相同,这又是怎么回事呢? 下面是那个板子的D12test.sys Signature=\"$CHICAGO$\" Class=USB provider=%PHILIPS% LayoutFile=layout.inf [Manufacturer] %MfgName%=Philips [Philips] %USB\\VID_0471&PID_0222.DeviceDesc%=D12TEST.Dev, USB\\VID_0471&PID_0222 %USB\\VID_0471&PID_0666.DeviceDesc%=D12TEST.Dev, USB\\VID_0471&PID_0666 %USB\\VID_0471&PID_0888.DeviceDesc%=D12TEST.Dev, USB\\VID_0471&PID_0888 [PreCopySection] HKR,,NoSetupUI,,1 [DestinationDirs] D12TEST.Files.Ext = 10,System32\\Drivers D12TEST.Files.Inf = 10,INF [D12TEST.Dev] CopyFiles=D12TEST.Files.Ext AddReg=D12TEST.AddReg [D12TEST.Dev.NT] CopyFiles=D12TEST.Files.Ext AddReg=D12TEST.AddReg [D12TEST.Dev.NT.Services] Addservice = D12TEST, 0x00000002, D12TEST.AddService [D12TEST.AddService] DisplayName = %D12TEST.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\D12TEST.sys LoadOrderGroup = Base [D12TEST.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,D12TEST.sys HKLM,\"System\\Currentcontrolset\\Services\\D12TEST\\Parameters\",\"MaximumTransferSize\",0x10001,65536 HKLM,\"System\\Currentcontrolset\\Services\\D12TEST\\Parameters\",\"DebugLevel\",0x10001,2 [D12TEST.Files.Ext] D12TEST.sys ;---------------------------------------------------------------; [Strings] PHILIPS=\"Philips Semiconductors\" MfgName=\"Philips\" USB\\VID_0471&PID_0222.DeviceDesc=\"Philips PDIUSBD12 Evaluation Board\" USB\\VID_0471&PID_0666.DeviceDesc=\"Philips PDIUSBD12 SMART Evaluation Board\" USB\\VID_0471&PID_0888.DeviceDesc=\"Philips PDIUSBD12 USB-EPP Evaluation Board\" D12TEST.SvcDesc=\"D12TEST.Sys PDIUSBD12 Bulk IO test driver\" |
|
7楼#
发布于:2003-10-09 15:23
我也是。手动添加可以加上去。不过也没用。
毫无疑问是初始化错误。。。 郁闷。。。 |
|
|
8楼#
发布于:2003-10-09 17:32
应该是枚举没有成功,尝试如下的做法:
删除设备管理器里那个没有成功枚举的设备,将设备端复位或者断电再上电,如果问题还没有解决,就检查固件,当然也可能是你驱动程序的问题,你可以做如下的检验,把你inf文件中的DataCollecting.sys改成d12test.sys,如果加载成功就说明你的驱动是有问题的。 |
|
9楼#
发布于:2003-10-09 18:16
jinghuiren:
有时间帮忙看看: http://www.driverdevelop.com/forum/html_52363.html?1065693476 |
|
|