如何写一个hid的过滤驱动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,hidkmdf
;*****************************************
; 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"