利用WDF框架生成的inf文件,在加载的驱动以后,默认会在设备管理器中显示为“Sample”类别,并且无法正确显示设备驱动提供商等信息。为此,需要对默认生成的inf文件进行更改。
inf 由各个section构成,这一点跟ini有些类似。要修改inf,首先要了解下面一些section
1. [Version]
Signature="$WINDOWS NT$"
Class=deviceclassname;这里就是设备类型!
ClassGuid={BDC0EAC4-AC4B-46af-82EA-C4958B686515} ; 设备类型GUID
Provider=%ManufacturerName%
CatalogFile=KMDFDriver3.cat
DriverVer=08/20/2015,20.6.20.245;版本号!
Windows对设备类型是有分类的,具体可以看WDF下面include路径中的devguid.h文件。MSDN也对这部分做了相应介绍:
系统预留:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff553428(v=vs.85).aspx
用户设备:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff553426(v=vs.85).aspx
对于用户自定义设备类型,还需要添加一个class Section;WDF框架当然也有这部分内容
[ClassInstall32]
Addreg=deviceclassnameReg
[deviceclassnameReg]
HKR,,,0,%deviceclassname%
HKR,,Icon,,-5
这个应该不难理解,在windows下,信息都是要保存在注册表的HKR就是HK Root。图标用的是一个序号,这个也是windows预定义好的,具体内容可参见:
http://wenku.baidu.com/link?url=6eJ7boJ_XrNB7VKSrLxfeWMwXpIRthTBU6pjh9bTGhD7LHuIKu1nvPCVIhJw9IvHaoSP047OmLxKbh1XDujOg40WB_GaAv1vUz0aUGPvd5O
下面列举一些常用设备:
设备名称 | 图标 | 注册表值 |
图像处理 | 0 | 39 |
蓝牙 | 201 | 44 |
Memory | -11 | 16 |
显示卡 | -1 | 1 |
网卡 | -5 | 8 |
PCMCIA | -11 | 15 |
处理器 -28 34
[Manufacturer]
%ManufacturerName%=Standard,NTx86;设备厂商字符串
[Standard.NTx86]
%KMDFDriver3.DeviceDesc%=KMDFDriver3_Device, \\VID_10EC ;设备ID字符串
下面就是字符串的定义了
[Strings]
SPSVCINST_ASSOCSERVICE= 0x00000002
ManufacturerName="company name" ; 设备厂商
DeviceClassName="deviceclassname" ; 设备类型
DiskName = "KMDFDriver3 Installation Disk"
KMDFDriver3.DeviceDesc = "KMDFDriver3 Device"
KMDFDriver3.SVCDESC = "KMDFDriver3 Service"
有了以上信息,就可以在设备管理器中轻松显示自定义条目了