在示例01中,Class=Image,这一行的语法为:Class=Unknown,系统定义用户指定的类名。(有关信息,参考下面的设备管理器支持的硬件类型)
在示例01中,Provider=%SoftMfg%,这一行的语法为:Provider=%提供商名称%,提供商。
在示例01中,DriverVer=11/26/2003, 4.2.1126.72,这一行的语法为:DirverVer=月/日/年,版本及发布时间。
在示例01中,CatalogFile=usbvm31b.cat,这一行的语法为:CatelogFile=[.Ntetc],包含WHQL数字签名(即微软数字签名)的目录说明文件。
设备管理器支持的硬件类型
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
㈡、[ClassInstall(32)] 节:为设备定义一个新的类别(Class)。主要用于硬件设备的安装。
㈢、[Manufacturer] 节:[Manufacturer] 与 [Manufacturer Name] 节, 列出此 .INF 文件可辨识的所有硬件设备,并列出了开发该硬件的厂商名称,主要用于硬件设备的安装。
在设备驱动程序的 .INF 文件中必须包括[Manufacturer]节与 [Manufacturer Name] 节。对应到本示例(即示例01)中就是[Manufacturer]节和[VM]和[VM.NT]节,安装新硬件的向导中列出来的厂商名字和设备名称就是来自这两个节。这行语句“%HwMfg%=VM,NT” 的等号右边的名字指明设备制造商是VM,等号左边是厂商的名字,示例01中的的厂商名称是"VM"(在后面讲到的[Strings]节中)。在一个.INF 文件中可以有多个设备制造商的名字,都必须放在[Manufacturer]节中,同时[Manufacturer Name] 节可以列出该厂商的多种设备。
㈣、[Manufacturer Name] 节:[Manufacturer Name] 节区含有对要安装的设备的描述,并为要安装的设备指出 [Install] 节区。 [Manufacturer Name] 节语法:
[Manufacturer Name]
device-description=install-section-name,device-id[,compatible-device-id]...
device-description就是对要安装的设备的描述。install-section-name就是此设备的 [Install] 节区名称, [Manufacturer Name] 节区名称必须已在
对应到示例01中,就是这行语句“%USB\VID_0AC8&PID_0302.DeviceDesc%=VM.USBDCam302.XP,USB\VID_0AC8&PID_301B”等号左边是设备的描述,也就是设备名字是"VIMICRO USB PC Camera",而等号右边的VM.USBDCam302.XP,USB\VID_0AC8&PID_301B是设备标志符,这个标志符是对应到一类的硬件设备,就是USB视频设备,操作系统检测到USB视频设备,安装相应的驱动的时候,就会从设备驱动的安装节即[VM.USBDCam302.XP] 节开始安装驱动。可以看出来此 .INF 文件可以用于通用的USB视频设备"VIMICRO USB PC Camera"的驱动程序的安装(相关信息,也可以从设备管理器里查看)。
普通的安装软件的 .INF 文件中,不包括[Manufacturer] 与 [Manufacturer Name] 节,即使包含,也不会执行它们,这2个节仅仅用于硬件的设备驱动中起作用。在下面这个实例(即示例02)中,就不包含他们。
;示例02 寒夜孤星 moviemk.inf 【Windows Movie Maker 2.1 简体中文版安装】 [version] Name |
㈤、[Install] 节:描述设备驱动程序与硬件设备的实际属性。
[install];指向添加的设备接口列表 Copyfiles=Ggdriver.Files.Driver AddReg=Ggdriver.AddReg LogConfig=logconfig DirverVer=19/10/2001 ProfileItems=AB\cd |
它也定义了所有 [Install] 节的名称,在此定义的节中包含了安装该设备的信息和命令。默认情况下,会执行 [DefaultInstall] 节,在示例01中,Install操作就会执行[DefaultInstall] 节。 [DefaultInstall] 节中包含指向其他节的指针,该节可用于指定要复制和删除的文件、注册表的更新、 .INF 文件的更新等。
[Install] 节分 [DefaultInstall] 和 [OtherInstall] 两类,它们使用相同的格式。 [DefaultInstall] 节节名“DefaultInstall”如前面表格内容所述被显式地在注册表中指定,大小写不敏感。该节也是系统获取INF文件中安装信息的首要入口,当用户右击INF文件选“安装”时该节内容被执行。 [OtherInstall] 与 [DefaultInstall] 节遵循相同的语法,但必须被显式地调用,常被用来定义反安装动作。它们均可包括以下种类的可选入口:
[Install] 节的语法: [install-section-name] LogConfig=log-config-section-name ;指定遗留设备的I/O地址,IRQ等配置的详细信息 |
上面的入口并非都必需,如果需要一个入口,则应该在等号右侧指出存在于该INF文件内的索引节名(不用指出节名的一个特例是CopyFiles入口,可使用“@”字符后跟文件名的形式,效果是直接将文件拷贝到 [DefaultInstall] 节所罗列的硬盘目录)。节名需由可打印字符组成,在中文系统平台中,可使用中文字符作为节名,这也是体现INF格式安装本地化的地方,非常直观。每类入口在一个 [Install] 节内只能出现一次,第二次及以后出现的同名重复入口将被忽略。每类入口的等号右侧可罗列多个节名,节名之间以逗号分开,以便列举同一类动作的不同作用对象,如删除多个注册表键、拷贝文件到多个目录路径等。
对应到示例01中,[Install] 节就是[VM.USBDCam302.XP]节,其中要执行复制文件CopyFiles(如:CopyFiles=VM.USBDCam.Files.Ext, VM.CustomPrp.CopyFiles, VM.STI.CopyFiles, VM.XPAPP.CopyFiles, VM.XPTWAIN.CopyFiles, VM.Config.CopyFiles)和添加注册表项目AddReg(如:VM.USBDCam.AddReg, VM.CustomPrp.AddReg, VM.WIA.AddReg,
如果是安装普通的软件的 .INF 文件,可以通过鼠标右键菜单上的“安装”命令来安装,这个时候 .INF 文件必须包括[DefaultInstall]节,也可以包括其他的[Install]节,用RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection [Install] 节的名字,这样类似的命令来安装。
[Install] 节定义了安装程式与硬体驱动需要的资源,以便安装新的驱动程式或者软件。此节中每个条目都有其特定格式与意义,并非每个条目都是必要的。无论是安装驱动程序还是普通的软件,最后都要从某一个[Install] 节开始执行。