没有合适的资源?快使用搜索试试~ 我知道了~
驱动安装文件(INF)结构简介
5星 · 超过95%的资源 需积分: 16 50 下载量 114 浏览量
2009-05-27
13:53:40
上传
评论
收藏 347KB PDF 举报
温馨提示
试读
14页
Inf 是一个头疼的东西,主要它是一个不用语言而是用配置文件来处理的文件,安装的时候无法调试,(Windbg 可以在驱动中设断点,但不能在.inf 文件中停住),只有一个日志文件可以参考,而且一个INF 文件用到了不同的语法
资源推荐
资源详情
资源评论
Inf
Inf
Inf
Inf
文件简介
(参考和翻译文件来源如下
我看了 MSDN 和 OSR 的解释,加了自己的理解,也翻译了一些内容,也去掉了一些内
容,英文好的自己看好了。相信该作者 Brian
Brian
Brian
Brian
Catlin
Catlin
Catlin
Catlin
是个厉害的角色。
http://www.wd-3.com/archive/InfFiles.htm
MSDN
OSR
翻译 zhoujiamurong
虽然不是俺写的,翻译了好些天,谁叫我初中英语差呢!
zhoujiamurong@163.com 欢迎美女来信,哈哈。
)
Inf 是一个头疼的东西,主要它是一个不用语言而是用配置文件来处理的文件,安装的时候
无法调试, (Windbg 可以在驱动中设断点,但不能在 .inf 文件中停住 ) ,只有一个日志文件 可
以参考,而且一个 INF 文件用到了不同的语法,完全看懂 Inf 文件曾经是我的一个梦想, 原
来我都是 Copy 别人的文件再改改,其实我没有完全弄明白,那好,请我们先沉着迎战, 这
篇文章是我看过的写的最好的一个讲 Inf 文件的文章,其实我看的好像就只有这一篇,哈 哈
(不算 MSDN 和 OSR
) 。
给大脑不大的熊的
给大脑不大的熊的
给大脑不大的熊的
给大脑不大的熊的
Inf
Inf
Inf
Inf
文件
文件
文件
文件
( 原文标题很奇怪,看了就知道了,这个可是潜心找到的,不容易找的,真的是可遇不可求
啊 )
从前的一天,我在百英亩的森林里散步, 一个动物过来搭话。
" 不好意思 " 一个小粉猪问道 . " 但但但是你知道 Windows 设备驱动,因为 , 如果你知道 , 我们
的朋友需要一些帮助 ", 他说 , 指向一个小熊。 ( 小熊前面有好多修饰词,俺不懂没有翻译,
好像是穿着吊带裤,哈哈 )
" 你需要什么帮助 ?", 我问这个小熊 .
" 嗯 ", 小熊回答道 , " 我是一个大脑不大的小熊,我写了一个 Windows 设备驱动,但我不知道
如何安装它 " .
" 你所要做的是 , 写一个 .INF 文件 , 它描述你所控制的驱动和设备,告诉 Windows 操作系统 ",
我说 . " 嗯 , 顺便问一下 , 你的驱动控制的是什么设备呢 ?".
" 它是一个蜂蜜 ( hunny ) 过滤驱动 . 它去掉泥土和蜜蜂和其他的杂物。这可是我的发明。 ", 它
相当骄傲的说( hunny 应该是蜂蜜,不过我没有查到这个单词)
" 嗯 ", 我自己想 , " 这个大脑不大的小熊还不错嘛 ".
" 你想 , 也就是说 , 你是否知道如何去写一个这种 " 电鹰覆文件 " ", 小熊问道 .
" 当然 , 为什么我们不坐下来,我来告诉你关于 .INF 文件的所有信息,嗨,都到哪里去了 ? 回
来!它们不是那么难! "
一小群动物出现了 , 一个接一个 , 带着恐惧的眼神。
" 别担心 , .INF 文件不是你们想象的那么高深 ", 我说道 , 试图平复它们的担心 .
"W-W 唔 , 不不不是大大大多数人人说的那样 ", 小粉猪说道 , 明显带着恐惧 .
" 你先冷静一下我的朋友 , 常常不安不能让你成长为一个健康大方的大猪的。 ", 我说道 .
小猪显然冷静下来 , 但仍然带着对我的疑虑 .
Inf
Inf
Inf
Inf
文件的任务
问一下驱动程序的编写者 " 什么是写一个 Windows 设备驱动最糟糕的部分? " 大多数的回答
是, " 写一个 .Inf 文件 " 这个原因是 DDK 关于 .INF 文件的文档没有提供一个程序性的方法去
描述一个 .INF 文件,如, " 如果你想要实现 X, 那么你做 Y 紧接着 Z" 。
这篇文章是描述 .INF 文件的基本知识和如何在安装一个设备驱动过程中使用它。
Inf 文件可以做很多事情,但 97% 的 inf 文件是三个任务
一、 识别特定的设备 。主要是通过硬件 ID 和兼容 ID 号,系统从总线驱动读到的硬件 ID 号
(这个是要看 USB Spec )和 Inf 文件中的硬件 ID 号进行比对,当匹配上后,系统知道这 个
Inf 文件就是为了这个设备来用的。 ( 匹配不上了,当然不要进行后面的工作 )
二、 将文件从介质 (
(
(
(
如安装光盘 )
)
)
)
拷贝到系统 。 主要是 Sys 文件, 当然还有 DLL 和 co-installe rs
文件、应用程序以及其他文件。
三、 在注册表中添加一个入口 。 这是描述设备和它相关的设备, 提供设备或驱动指定配置 信
息,描述给服务驱动管理器的 " 服务 ". (这个服务,并不同于一个开机运行的一个应用程序
)
就三个任务,简单吧!
请注意两个容易混淆的问题!
一、 Inf 文件并不是同一个语言文件一样, 从文件开头运行到文件结束, (这个问题就迷惑 了
我好久) Inf 文件的运行顺序是基于安装阶段的不同。
二、 绝大多数的节 (Section) 是被层次定义好的。 (也就是说,这个节的名字是以前某个节定
义的,或者系统定义的)
INF
INF
INF
INF
文件的结构
Inf 文件类似 ini 配置文件的做法,使用了一个叫做节的 Section 东西,如同下面
[SectionName]
Inf 文件是不管大小写的, 名字中不要有空格 , tabs, 其他控制符号
,
以及 [%];"\ , 有的符号 其
实在某些情况是可以用的,不过不要没事找事。更不要使用句点符号, (因为它有别的用处
,
被微软霸占了,微软强抢民女啊) ,请使用 "_" 或者 "-".
每个节 Section 中有 0 到多个属性( directive ,也可以翻译成键,我觉得翻译成属性,好理 解
点) ,每个属性可以赋值,使用等号 = 。使用分号 ";" 作为注释。
而且 Inf 这个文件没有语言中的 If-Elseif-Else 这样的分支语句。 那么不同的 Windows 如何 解
决呢?
[SectionName.NT]
它使用 .NT 表示这个节只能在 Windows2000 或以上才运行。
先前我们曾经说过, Inf 文件并不是按照文件中的顺序来运行的,所以节可以放在任何地方
( 其实我都按照顺序放的,本来调试都不方便,不想给自己找事,理论上是可以乱序的 ) , 但
是有个节是必须在最前面的,它是 [Version], 有个节一直在最后,它是 [Strings]
因为在设备管理器和驱动中要使用一些字符串,所以在 Inf 文件中定义了 [Strings]
这个节,
这个是最简单了,你只当是 C 语言的宏好了。下面是个例子
[Strings]
my_company = "California Death Beams and Stuff"
my_device = "Basselope 2003 Stealth Weapons System"
当我们要使用这个字符串的时候,我们就用 %% 将字符串包起来,如
[Manufacturer]
%my_company% = install_my_stuff
世界上很多电脑都是用的英语作为它的语言显示, 但坦白的说, 使用非英语的人们都是喜 欢
无论什么都用自己的语言来显示所有的东西。你可以在你的 Inf 文件中使用这样的宏定义 所
有你想要显示的字符串,系统设备安装器会根据你安装系统的语言来选择要显示的字符串。
实现这个要使用多 [Strings] 节 , 每个 Strings 节需要带一个语言 ID 的后缀 . 这个语言 ID 是在
SDK 中一样的,是由四个 16 进制数来组成的,其中低 10 位是标识主语言,高 6 位标识 子
语言。 ( 主语言如中文,子语言如简体中文或繁体中文 ) ,例如,英语的 ID 是 0409 ,这个 语
言 ID 的定义在 SDK 中,看一下例子:
[Strings] ; Default, US English
one = "One"
two = "Two"
[Strings.040c] French (Standard)
one = "Un"
two = "Deux"
[Strings.080a] ; Spanish (Mexico)
one = "Uno"
two = "Dos"
使用上面的 [Strings] 节,无论你的系统是法语还是墨西哥语等,都会使用一个节来定义两 个
字符串,如果是没有的语言,他还是会使用默认的语言定义,在实现本地化的过程中, Inf
文件支持多语言经常被提到。 ( 不过比起应用程序本地化来说,简单多了 )
通用节
如果你看 DDK 文档的 Inf 文件部分,就会发现系统设备安装器可以理解 39 个节 ( 这个节还
在不断的加,不保证正确 ) 。每种类安装器,如 Network, Video ,可以加自己的节,或一个 存
在的节的指令。 ( 这句话我理解不太好,英语好的帮忙翻译下 )
剩余13页未读,继续阅读
资源评论
- shellove19872013-01-06不错,开会用上了。
- 小熊夫人2013-12-12写得很详细,不错
- 阡陌秋寒2013-03-26还不错,值得参考
- ligh_T2014-04-19还是不够详细
- jiangzihui2013-05-30还不错,可以用
zhang000hui
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功