inf

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

INF文件简介

INF文件即设备信息文件(Device Information File),是Windows操作系统下用来描述设备或文件等数据信息的文件,其是一个文本文件。INF文件是由标准的ASCII 码组成,可以用任何一款文字编辑器查看或修改其中的内容。INF 文件功能非常强大,几乎能完成日常操作的所有功能,可以把它看成是Windows 系统底下的超强批处理。

INF文件的任务

inf文件可以做很多事情,但97%的inf文件是三个任务

一、识别特定的设备。主要是通过硬件ID和兼容ID号,系统从总线驱动读到的硬件ID号和inf文件中的硬件ID号进行比对,当匹配上后,系统知道这个inf文件就是为了这个设备来用的。(匹配不上了,当然不要进行后面的工作)

二、将文件从介质((如安装光盘))拷贝到系统。主要是sys文件。

三、在注册表中添加一个入口。这是描述设备和它相关的设备,提供设备或驱动指定配置信息,描述给服务驱动管理器的"服务".(这个服务,并不同于一个开机运行的一个应用程序)

两个容易混淆的问题!

一、inf文件并不是同一个语言文件一样,从文件开头运行到文件结束,inf 文件的运行顺序是基于安装阶段的不同。

二、绝大多数的节(Section)是被层次定义好的。(也就是说,这个节的名字是以前某个节定义的,或者系统定义的)

INF文件的结构

Inf文件类使用了一个叫做节的Section东西。Inf文件并不是按照文件中的顺序来运行的,所以节可以放在任何地方,但是有个节是必须在最前面的,它是[Version],有个节一直在最后,它是[Strings]

因为在设备管理器和驱动中要使用一些字符串,所以在Inf文件中定义了[Strings]这个节。

[SectionName]

节名称说明

[Version] INF文什的开始,描述版本信息,主要用于版本控制

[Strings] 字符串信息,用于常量定义

[SoureDiskName] 指明驱动程序所在的磁盘

[SoureDiskFiles] 指明驱动程序的文件名

[DestinationDirs] 指明INF 文件和驱动程序的目标目录

[Manufacturer] 指明供应商及其对应的Models 节的名称

[Models] 指明Install 节的名称,设备的硬件ID 等信息

[Install. Component] 一般用于拷贝文件,添加注册表入口

[Install. Services] 用于在注册表中“services ”键添加入口

[HW] 用于给硬件键在注册表中添加入口

在定义INF 文件时,应遵循如下语法规则:

(1)节名称和项外称都不区分大小写;

(2)节名称必须有“[]"括起来;

(3)各个节的顺序是任意的,但节中各项可能是固定的;

(4)使用反斜线“\”作为续行符;

(5)使用分号“;”表示注释行;

(6)使用%%表示一个字符串。

[Version]

这是.INF 文件标准的头,而且它指定什么样的操作系统和什么样的类安装器可以匹配这个.INF文件.

Signature="$CHICAGO$" Signature指定什么样的操作系统可以匹配这个.INF文件。$Chicago$指示所有的版本可以匹配

Class=USB 指定设备是哪个类的类名

ClassGUID={36FC9E60-C465-11CF-8056-444553540000}

指定设备类的GUID. 类和类GUID最好一致,否则安装会失败. 如果你创建你自己的类,使用DDK或SDK中GUIDGEN工具创建一个新的GUID.如果你使用一个已知的类,可以到DevGUID.H中去找GUID.

provider=%YourCompany% Provider指定谁写了这个.INF文件.

[SourceDisksNames]

1=%Cyload_INSTALL%,这里面的“1”是指磁盘序列号。磁盘是从1号开始, 而后每次加一

%Cyload_INSTALL%是一个字符串表示磁盘. 这个字符串将显示给用户,什么时候系统设备安装器需要插入磁盘到系统。

[SourceDisksFiles]

CyLoadME.sys = 1

CyLoad.sys = 1

%CyLoad.SCRIPTFILE% = 1

这个节中, 每个文件都要拷贝到系统中去, 磁盘上有什么文件要标识出来. 这个节联合SourceDisksNames节一起来工作.

CyLoadMEsys,CyLoad.sys ,%CyLoad.SCRIPTFILE% 安装在磁盘中的文件名。

“1”是一个包含该文件的磁盘的ID号, 而且在SourceDisksNames节中列有对应的磁盘.

[DestinationDirs]

CyLoadME.Files = 10, System32\Drivers

CyLoad.Files = 10, System32\Drivers

CyLoadFW.Files = 10, System32\CyLoad

CyLoadME.Files,CyLoad.Files,CyLoadFW.Files是创建的3个节的名字,它们所包含的文件名的列表,文件会被拷贝到指定的目录。

为驱动写的最常用的目录ID是:10 = %WinDir%\System32, 和12=%WinDir%\System32\Drivers, %WinDir%是预定义环境变量, 它指向你的系统目录, 而不是指向你的strings节中的宏.后面的对应是子目录。

[Manufacturer]

%MfgName%=YourCompany

它列出了这个.INF文件支持的设备的制造厂商。

如果你看这个指令, 它显示一个引用的字符串(通过宏替换)给了一个标识符作为它的值. 但, 不是那么回事. 等号标识("=") 不是一个作为赋值操作符使用, 而是作为一个分隔符. 分隔符后面是一个节的名字。它包含了一个设备模型的列表。

这个节是在安装过程的早期使用的,是当系统设备安装器搜索.INF文件去匹配硬件ID或兼容ID的时候.

[YourCompany]

%DeviceDesc%=CyLoad, USB\VID_04B4&PID_0084

[YourCompany]是一个描述设备的字符串

%DeviceDesc%是个.INF文件创建者起的节的名称, 它包含了安装设备驱动的属性.

CyLoad, USB\VID_04B4&PID_0084是一个硬件ID或兼容ID

当为一个特定的设备搜索一个.INF文件时,系统设备安装器将会在Manufacturer节开始. 它会搜索.INF文件的包含了.INF文件支持的那个厂商的设备列表.去检测硬件ID 和兼容ID列表. 如果它发现了一个匹配的, 那么它认定这个.INF文件支持这个设备, 然后去安装驱动。

相关文档
最新文档