DDK中INF文件详解

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

安装一个驱动程序

一个后缀是INF的文本文件控制设备驱动程序自动的安装。INF格式类似于WIN 下的老式的.INI文件,但是复杂些。一个INF文件允许自动的或者在对话框的帮助下安装驱动程序文件。

驱动程序安装结束后对系统产生两个持久的影响:

1. 描述驱动程序的系统注册表入口,它的加载顺序和任何适当的配置数据。

2. 驱动程序文件被拷贝到适当的系统路径。

INF文件是影响这些改变的标准的机制,它可以提供定制安装。

使用INF文件自动安装

INF文件随着硬件和驱动程序一起提供,INF文件的结构和内容是驱动程序作者的责任。INF文件结构

INF文件是被分(section)成几个部分的文本文件,每个部分被指定一个标识符号﹐它被中括号([])括起来﹒一些部分的命名是必须的﹐而其它部分是驱动程序特定的﹒每个部分是一

些安装动作﹐或者连接或者列举其它部分﹒

文件中各个部分的顺序是不重要的﹐因为每个部分都是被命名和连接的﹒一个部分继续直到另一个部分或者遇到文件结束﹒每个部分的标识符号是独一无二的名字﹐为了保持与WIN98的兼容﹐它的长度被限制在28个字符之内﹐可以包含下划线和圆点字符﹐在引用整个名字的前提下﹐可以包含空格字符﹒

文件内容的一般格式如下:

entry = value [, value...]

entry是指令﹐关键词或者文件名﹐value是entry被应用的属性﹒

entry或者value名字可以指定为一个使用百分号(%)的代替一些具体数据的字符串﹐分割INF文件的[Strings]提供一个特殊语言ID的值。

Version 部分

一个有效的INF文件从一个命名为[Version]的部分开始,它像一个INF文件的头和标识。

表. [Version]部分的条目

Manufacturers部分

另一个必须的部分是[Manufacturers]﹐这个部分的条目列出了可以使用这个INF文件安装的设备和驱动程序﹐条目的形式是:

manufacturer=model

manufacturer列出被安装的硬件的制造商的INF文件的唯一名字﹒model提供指向INF文件中另一个进一步安装这个模型的部分的指针﹐

Models 部分

罗列在[Manufacturers]部分的每一个模型﹐在文件中必须有相应的部分﹐model部分的每个条目的形式是:

device-description=install-section-name,hw-id[,compatible-id...]

device-description描述了设备模型的列表和一个短描述﹒这个字符串在安装的时候在对话框中提供给用户﹐因此它需要提供多种语言的文本﹒

install-section-name的值参考[DDInstall]部分﹐也描述了INF文件的另一个进一步安装的部分﹒hw-id是硬件设备在PnP兼容的总线上声明的时候返回的PnP标识符号﹒例如﹐USB\VID_045E&PID_00B标识微软HID(Human Input Device)的USB键盘设备﹒compatible-id可以是任何表示用于任何的包含在列表中的相同安装脚本的数值﹒

DDInstall 部分

它的名字独一无二的指定从[Models]部分列出的每个制造商的每个模型﹐

AddReg条目在语法上是必须的﹐CopyFiles条目对于[DDInstall]部分是重要的﹐它的形式是:

CopyFiles=file-list-section[,file-list-section...] 或者

CopyFiles=@filename

前者是更普通的版本﹐它允许一个指向另一个包含一个安装文件列表的部分的指针﹒然而对于简单的驱动程序的安装﹐可以直接的使用文件名﹒

表. [DDInstall]部分条目

CopyFiles部分

INF文件的[CopyFiles]部分是唯一的名字并且CopyFiles的指示器在[DDInstall]部分﹐它的条目的形式是: destination-filename[,source-filename,temp-filename,flag]

表. CopyFiles flag的定义

destination-filename是需要复制的文件名﹐如果与源文件名不同﹐source-filename必须被指定﹐temp-filename在WIN98中是为新文件指定一个中间的文件名直到系统重新激活﹐对于WIN2000来说﹐它是无用的﹒

flag值指定新的目标文件的部署﹒这些值可以OR起来使它有多个性质﹒应该确认没有互斥的项目﹒

因为[CopyFiles]条目的语法不包含指定源文件的磁盘或者路径选项﹐所以﹐必须使用其它的INF文件的部分[SourceDisksNames]和[SourceDisksFiles]﹒[CopyFiles]是复制的源文件名﹐复制的目标则在[DestinationDirs]部分﹒

AddReg部分

INF文件的[AddReg]部分是唯一的名字﹐并且引用AddReg的指示器在[DDInstall]部分﹒这个部分的目的是提供在系统注册表中添加或者修改条目﹐形式是﹕

reg-root[,subkey,value-name,flags,value]

reg-root是注册表根的缩写﹐子键描述根键下的键名﹐使用反斜线字符(\)分开子键﹒例如﹐Software\W2KDriverBook\ Driver\Setting是有效的HKCU或者HKLM根键的子键﹒

表. AddReg reg-root缩写的意义

value-name指定被添加或者修改注册表值﹒每个系统注册表键包含零个或者多个不同数据类型的值﹒注册表编辑器在右边的窗格列出了子键的值﹒值的名字和值的数据也一起显示出来﹒左边的窗格仅仅显示子键﹒flags指定数据的类型﹒

相关文档
最新文档