windows驱动开发-inf文件(一)

驱动总是和inf文件相关,在WinDDK的时候,许多inf文件都需要开发工程师手动编写,不过,现在已经可以使用inx文件来生成inf文件了,它经常用于驱动的安装和卸载;不过,并不是所有的驱动都需要使用inf文件安装,也不是所有inf文件都是用来安装驱动,在inf系列文章的最后,我们会讨论这些额外的情况,不过在那之前,先看一下inf文件的基础知识吧。

INF文件是组织成命名节的文本文件。某些节具有系统定义的名称,某些节的名称由 INF 文件的编写者确定。每个部分都包含由设备安装组件解释的特定于部分的条目。 某些条目以预定义关键字 (keyword) 开头。 这些条目称为指令。

出于特定目的,某些 INF 文件条目基本上是从一个部分到另一个部分的指针。 例如, INF AddReg 指令标识包含指示 Windows 修改注册表的条目的部分。 这些条目有时包括其他参数 。

其他 INF 文件条目不指向其他部分,但提供 Windows 在安装期间使用的信息,例如文件名、注册表值、硬件配置信息、标志等。 例如, INF DriverVer 指令 提供驱动程序版本信息。

当 Windows 开始安装时,它首先查找INF版本部分([Version])来验证 INF 文件的有效性。 然后,它通过查找 INF 制造商([Manufacturer])部分来启动安装。

inf文件的语法规则

区分大小写: 节名称、条目和指令不区分大小写。 例如, version、 VERSION 和 Version 是 INF 文件中同样有效的节名称规范。

必需和可选内容: 任何特定 INF 文件中的必需和可选部分、条目和指令集取决于要安装的设备/驱动程序或组件的类型。安装任何特定设备及其驱动程序所需的一组节、特定于节的条目和指令也在某种程度上取决于相应的类安装程序。 

节名称: 节名称的规则如下:

  • 可以按任意顺序指定节。 大多数 INF 文件按约定按特定顺序列出节,但 Windows 按名称而不是按 INF 文件中的位置查找节;
  • INF 文件中的每个节都以括在方括号 ([ ]) 的节名称开头。 节名称可以是系统定义的,也可以是 INF 编写器定义的。例如, [Manufacturer] 指定系统命名的 Manufacturer 节的开头,而 [Std.按文 种] 表示特定 INF 编写器定义的 Models 节名称。在 Windows 2000 及更高版本的 Windows 上,节名称的最大长度为 255 个字符;
  • 每个节在新 [section-name] 的开头或文件末尾标记处结束;
  • 如果 INF 文件中的多个节具有相同的名称,系统会将其条目和指令合并到单个节中;
  • 除非它用双引号字符括起来 (“) ,否则 INF 编写器定义的节名称必须是唯一到 INF 无引号的显式可见字符字符串,不包括具有 INF 特定含义的某些字符。 具体而言,由节项或指令引用的无引号节名称不能有前导空格或尾随空格、换行符、返回字符或任何不可见的控制字符,并且不应包含制表符。 此外,它不能包含括号 ([ ]) 字符、单个百分比 (%) 字符、分号 (;) 或任何内部双引号 (“) 字符,并且不能将反斜杠 (\) 作为其最后一个字符;

使用字符串标记: INF 文件中的许多值(包括 INF 编写器定义的节名称)可以表示为 strkey% 形式的%字符串键标记。 在 INF 文件的 INF 字符串 部分中,每个字符串键必须与由一系列显式可见字符组成的字符串值相关联。 如有必要,设置代码会将字符串值转换为 Unicode。

行格式、延续和注释: 格式和注释方面的规则如下

  • 节中的每个条目和指令都以返回或换行符结尾。 因此,用于创建 INF 文件的文本编辑器不得在编辑器确定的任意字符数之后插入回车符或换行符。
  • 反斜杠字符 (\) 可用作条目或指令中的显式行连续符。 但是,路径规范中也使用反斜杠字符。 若要确保路径规范中显示的反斜杠字符不会被错误地解释为行连续符,
  • 注释以分号 (开头 ;) 字符。 分析和解释 INF 文件时,系统会假定以下内容与安装过程无关:同一行中分号后面的任何字符,除非分号出现在 “带引号的字符串” 或 %strkey% 标记中除换;行符或返回字符外不包含任何内容的任何空行;
  • 逗号分隔节条目和指令中提供的值。INF 文件条目或指令可以在值列表中间省略可选值,但逗号必须保留。 INF 文件可以省略尾随逗号。
  • 若要在节条目和指令中提供的值中包含百分比 (%) 字符,请使用另一个百分比字符对百分比字符进行转义。
  • 若要在节条目和指令中提供的值中包含双引号 (“) 字符,请使用另一个双引号字符转义双引号字符。 请注意,字符串必须位于 “带引号的字符串”内。

 INF 大小限制: 在字符串替换和包含终止 NULL 字符之前,INF 文件字段的最大长度(以字符为单位)为 4096。字符串替换后,INF 文件字符串的最大长度(以字符为单位)为 4096,其中包括终止 NULL 字符。

INF文件解析1

下面是官方给出一个inf例子,以显示任何 INF 文件如何由部分组成,每个部分都包含零行或更多行,其中一些是引用其他 INF 编写器定义的部分的条目::

[Version]
Signature   = "$Windows NT$"
Class       = Mouse
ClassGUID   = {4D36E96F-E325-11CE-BFC1-08002BE10318}
Provider    = %Provider% ; defined later in Strings section
DriverVer   = 09/28/1999,5.0.2136.1
CatalogFile = ExampleCatalog.cat
PnpLockdown = 1

[DestinationDirs]
DefaultDestDir = 13

; ... [ControlFlags] section omitted here

[Manufacturer]
%StdMfg% = StdMfg ; (Standard types)
%MSMfg%  = MSMfg  ; Microsoft
; ... other Manufacturer entries omitted here

[StdMfg]  ; per-Manufacturer Models section
; Std serial mouse
%*pnp0f0c.DeviceDesc% = Ser_Inst,*PNP0F0C,SERENUM\PNP0F0C,SERIAL_MOUSE
; Std InPort mouse
%*pnp0f0d.DeviceDesc% = Inp_Inst,*PNP0F0D
; ... more StdMfg entries and following MSMfg and xxMfg Models sections omitted here

; per-Models DDInstall (Ser_Inst, Inp_Inst, etc.) sections also omitted here


[Strings]
; where INF %strkey% tokens are defined as user-visible (and
; possibly as locale-specific) strings.
Provider = "Microsoft"
; ...
StdMfg   = "(Standard mouse types)"
MSMfg    = "Microsoft"
; ...
*pnp0f0c.DeviceDesc = "Standard Serial Mouse"
*pnp0f0d.DeviceDesc = "InPort Adapter Mouse"
; ...

以前的 INF 文件中的几个部分具有系统定义的名称,例如 Version、 DestinationDirs、 Manufacturer 和 Strings。 某些命名节(如 Version、 DestinationDirs 和 Strings) 仅包含简单的条目。 其他引用其他 INF 编写器定义的部分,如制造商(Manufacturer)的 上一个示例所示。

请注意鼠标设备驱动程序安装相关部分的隐含层次结构,从上一示例中的 “制造商 ”部分开始。 下图显示了 INF 文件中某些节的层次结构:

请注意以下有关 INF 文件的隐式层次结构:

  • “制造商”[Manufacturer]部分中的每一个项都引用 INF 文件中其他位置 (StdMfg、MSMfg) 中的每个制造商的型号部分;
  • 每个模型部分([models-section-name])指定一些条目数;在示例中,它们以 xxx 开头,%DeviceDesc% ;
  • 每个这样的 %xxx.DeviceDesc% 令牌引用该制造商产品系列 (Ser_Inst和Inp_Inst) 的一些按型号的 DDInstall 部分,每个条目标识单个设备 (*PNP0F0C 和 *PNP0F0D,因此此处显示的“DeviceDesc”) 或一组设备的兼容型号;
  • 每个此类 DDInstall-typeXxx_Inst 节又可以追加某些系统定义的扩展,并且可以包含引用其他 INF 编写器定义的节的指令。 例如,在上一示例中显示为片段的完整 INF 文件也有Server_Inst。服务 部分[Server]及其Ser_Inst节具有 CopyFiles 指令,该指令引用此 INF 文件其他位置的Server_CopyFiles节;

  • 27
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Altera USB Blaster驱动inf文件是一种Windows设备驱动程序,用于连接和管理Altera FPGA开发板。驱动程序可以通过官方网站下载。 下载后,将驱动程序解压到计算机上,并使用管理员权限安装。在设备管理器中找到未安装驱动的设备,右键单击它,选择“更新驱动程序软件”,然后选择“浏览计算机以查找驱动程序软件”。在文件浏览器中找到驱动程序文件夹,并选择.inf文件,点击安装即可。 .inf文件是设备驱动程序的配置信息文件,它包含设备的厂商、设备ID、驱动程序文件名等信息。在安装驱动程序时,首先会查找.inf文件,加载设备的信息,然后将设备和驱动程序连接起来。 通过安装Altera USB Blaster驱动程序,可以实现在Windows系统中访问Altera FPGA开发板。开发人员可以使用该开发板进行FPGA芯片开发开发嵌入式系统、数字信号处理和通信系统等应用。因此,对于需要使用这些技术开发的人员,安装Altera USB Blaster驱动程序非常重要。 ### 回答2: Altera USB Blaster驱动INF文件是一个驱动程序文件,用于支持Altera USB Blaster设备的连接和通信。这个驱动程序文件包含了操作系统与设备的沟通协议和指令,确保Altera USB Blaster能够正常工作。 该文件通常存储在安装驱动程序软件的目录中,通过设备管理器可以找到并安装该驱动程序。在Windows系统中,可以通过设备管理器中对设备驱动程序进行更新或安装来安装Altera USB Blaster驱动INF文件。 此外,在安装驱动程序前,需要确保Altera USB Blaster设备已经正确连接到计算机上,并且没有任何的硬件或软件冲突。如果在安装驱动程序时遇到问题,可以尝试重新连接设备或检查计算机系统环境。 总之,Altera USB Blaster驱动INF文件是支持Altera USB Blaster设备的关键程序文件,通过正确安装驱动程序可以确保设备与计算机之间的正常通讯,并有效的进行程序烧录操作等。 ### 回答3: Altera USB Blaster驱动INF文件包含用于安装和使用该设备的信息。这个INF文件被称为设备驱动程序安装程序。此文件用于安装 USB Blaster驱动程序。以下是该文件的作用和使用的步骤: 该驱动程序用于与Altera USB Blaster通信。它允许使用Altera Quartus软件和其他编程工具来连接和编写FPGA的程序代码。 在使用Altera USB Blaster之前,需要将其驱动程序安装在计算机上。要安装驱动程序,首先需要从Altera网站下载最新版本的驱动程序。当你下载并解压缩文件后,会发现驱动程序包括.inf文件和USB Blaster驱动程序本身。 要安装该驱动程序,请遵循以下步骤: 1.将Altera USB Blaster连接到计算机,并确保它被识别为设备。 2.单击INF文件并选择安装选项。这将启动Altera USB Blaster驱动程序的自动安装过程。 3.根据指示完成设备驱动程序安装程序的安装过程。 注:如果你使用的是64位操作系统,请注意选择64位驱动程序。 一旦安装成功,你就可以使用Altera Quartus和其他编程工具来连接和编写FPGA 的程序代码了。Altera USB Blaster驱动程序的使用非常简单且易于理解。只需要按照上述步骤进行操作即可使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值