阅读:2914回复:3
一个非PnP的驱动inf文件如何修改使之正常安装??内有inf内容
写了个win7下的hid驱动的上层过滤程序,根据范例中Toaster的filter中的inf修改了一个上层过滤的inf文件,可是在使用UpdateDriverForPlugAndPlayDevices进行安装的时候却失败,错误码是0xe000020b,因为win7下hid驱动相关的是kmdf,所以upperfilter是kmdf。我使用的安装函数依次为SetupDiGetINFClass,SetupDiCreateDeviceInfoList,SetupDiCreateDeviceInfo,SetupDiSetDeviceRegistryProperty,UpdateDriverForPlugAndPlayDevices。除了最后一个函数其他都成功,请教是inf写的有问题么?如何修改?还是调用的安装函数有问题,需要添加或者删除掉那些相关的函数??谢谢
inf文件内容如下。 [Version] Signature = "$WINDOWS NT$" Class=HIDClass ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da} Provider=%MSFT% DriverVer=11/25/2010,6.1.7600.16385 [DestinationDirs] DefaultDestDir = 12 ;***************************************** ; Toaster Device Filter Install Section ;***************************************** [Manufacturer] %StdMfg%=Standard,NTx86 ; For XP and later [Standard.NTx86] %ToasterFilter.DeviceDesc%=ToasterFilter, Root\MsToaster [ToasterFilter.NT] CopyFiles=ToasterFilter.NT.Copy [ToasterFilter.NT.Copy] filter.sys [ToasterFilter.NT.HW] AddReg = ToasterFilter.NT.HW.AddReg [ToasterFilter.NT.HW.AddReg] HKR,,"UpperFilters",0x00010000,mshidkmdf ;***************************************** ; Toaster Device Filter Service Section ;***************************************** [ToasterFilter.NT.Services] ;Do not specify SPSVCINST_ASSOCSERVICE on filter drivers. AddService = ToasterFilter,, filter_Service_Inst [filter_Service_Inst] DisplayName = %filter.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\filter.sys ;************************* ; Source file information ;************************* [SourceDisksNames] 1 = %DiskId1%,,,"" [SourceDisksFiles] filter.sys = 1,, ; ;--- ToasterFilter Coinstaller installation ------ ; [DestinationDirs] ToasterFilter_CoInstaller_CopyFiles = 11 [ToasterFilter.NT.CoInstallers] AddReg = ToasterFilter_CoInstaller_AddReg CopyFiles = ToasterFilter_CoInstaller_CopyFiles [ToasterFilter_CoInstaller_AddReg] HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01009.dll,WdfCoInstaller" [ToasterFilter_CoInstaller_CopyFiles] WdfCoInstaller01009.dll [SourceDisksFiles] WdfCoInstaller01009.dll=1 ; make sure the number matches with SourceDisksNames [ToasterFilter.NT.Wdf] KmdfService = ToasterFilter, Filter_wdfsect [Filter_wdfsect] KmdfLibraryVersion = 1.9 [Strings] SPSVCINST_ASSOCSERVICE = 0x00000002 MSFT = "Microsoft" StdMfg = "(Standard system devices)" ClassName = "Toaster" DiskId1 = "Toaster Filter Installation Disk #1" ToasterFilter.DeviceDesc = "Microsoft Toaster Filter" filter.SvcDesc = "Microsoft Toaster Filter Driver Refactored" Toaster.SVCDESC = "Microsoft WDF Toaster Featured Device Driver" |
|
沙发#
发布于:2010-11-28 11:46
麻烦高手给看一下inf文件吧,确认是inf文件的问题,因为用ddk的devcon进行安装仍然失败。安装时还没有到启动服务,还没有进入driverentry
|
|
板凳#
发布于:2010-12-04 00:43
用户被禁言,该主题自动屏蔽! |
|
地板#
发布于:2010-12-18 13:21
>>因为win7下hid驱动相关的是kmdf,所以upperfilter是kmdf
没有必要,WDM也可以。 >>我使用的安装函数依次为......UpdateDriverForPlugAndPlayDevices 你安装过滤驱动,调用UpdateDriverForPlugAndPlayDevices到底是想更新你的过滤驱动还是HID类驱动?实际上,你完全不应该调用这个函数。 |
|
|