inf文件的编写

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
标 题: 【原创】【成果3.2】inf文件的编写
作 者: sislcb
时 间: 2008-01-02,15:19
链 接: http://bbs.pediy.com/showthread.php?t=57571

这部分主要讲解inf文件的编写,其实inf文件不仅仅可以用来做为安装驱动使用,还有很多其他用法,这里就不涉及了,先讲下inf的语法,这些语法都是google上有的。

inf文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑。inf是不区分大小写的。

inf中包含各节的含义:
1、 Version节

  每 一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出 现"signature=" $CHICAGO$""这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包 含"signature="$Windows NT$""这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两 者必具其一。
包含在version中class说明了设备的类型,常见的类型有: Display(显示设备,如显卡)、Media(多媒体设 备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer (打印设备)、Image(图像捕获设备,如摄像头)。

2.Manufacturer节
  该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如"%ATi%=ATi"指明设备的生产商为"ATi",这个大家都不会陌生吧,是显卡的生产商。

3.SourceDisksNames节

  该节主要指明安装文件所在的介质。如:"1="ATi Drivers Release CD""表明所有驱动程序都在零售版的CD盘上。

4.SourceDiskFiles节
  驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如"atinbtxx.sys=1",则你必须到[DestinationDirs]节去查看"1"具体代表那个位置。

5.DestinationDirs节
  INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。

6.DefaultInstall节和Install节
  在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。

7.String节
  这一节中定义了字符串变量,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。 

(以上解释内容来自http://www.roarsoft.net/dispArticle.asp?boardid=34&ArticleID=9200)
这是inf文件的基本语法了。现在来看具体的inf文件的写法,我在这里写了一个最简单的helloworld驱动,其功能就是打印了一句“hello world”。可以通过dbgview观察。这个inf就是为了安装helloworld这个驱动。
下面是inf文件:

代码:
;;;

;;; HelloWorld

;;;

;;;

;;; Copyright (c) 2008, bbs.pediy.com

;;;



[Version]

signature       =  "$Chicago$"               

;这个是必须的,也可以换成WIndows95 和nT,但是这个最好,它表示windows

Class    =  NULL      ;属于什么类型,这里是没有

ClassGuid   =  {00000000-0000-0000-0000-000000000000}  

;该类型的类型id,这里全填0

Provider   =  %PEDIY%                                      ;提供商的名称

DriverVer       =  01/02/2008,1.0.0.1                  ;驱动的版本号



[DestinationDirs]

HelloWorld.DriverFiles      = 12     ;%windir%/system32/drivers

;12代表%windir%/system32/drivers这个目录,意思就是将HelloWorld.DriverFiles中的内容拷贝到%windir%/system32/drivers中



;;

;; Default install sections

;;



[DefaultInstall]

CopyFiles           = HelloWorld.DriverFiles

;CopyFiles是内建命令,表示拷贝将等号右边的节里面的文件拷贝到目的地





[DefaultInstall.Services]

AddService          = %HelloWorldServiceName%,,HelloWorld.Service

;AddService是内建命令,表示找右边来新建服务.

;%HelloWorldServiceName%这个是服务的名称,加%表示在string section中,HelloWorld.Service代表下面的节点名称



;;

;; Default uninstall sections

;;



[DefaultUninstall]

DelFiles   = HelloWorld.DriverFiles

;DelFiles表示卸载时删除文件



[DefaultUninstall.Services]

DelService = HelloWorld,0x200    ; Flags note to stop service first

;删除服务,在删除服务前,先停止服务



;

; Services Section

;



[HelloWorld.Service]

DisplayName      = %HelloWorldServiceName%      ;系统服务中显示的名称

Description      = %HelloWorldServiceDesc%      ;系统服务中描述的名称

ServiceBinary    = %12%/helloworld.sys  ;%windir%/system32/drivers/filespy.sys

ServiceType      = 1      ;SERVICE_KERNEL_DRIVER

StartType        = 3      ;SERVICE_DEMAND_START,手动启动

ErrorControl     = 1      ;SERVICE_ERROR_NORMAL



;

; Copy Files

;



[HelloWorld.DriverFiles]

helloworld.sys





;;

;; String Section

;;



[Strings]

PEDIY          = "看雪论坛"

HelloWorldServiceDesc = "看雪论坛--HelloWorld.Inf 演示"

HelloWorldServiceName = "HelloWorld"

HelloWorldRegistry    = "system/currentcontrolset/services/HelloWorld"

这是一个简单的inf,没有包括所有的inf节名,但是 已经能够正常安装了。只需要右键该文件,然后点击“安装”,就可以安装成功了,由于需要手动启动,所以需要在cmd下运行 net start helloworld,helloworld是我们服务的名称,就可以看到启动成功了。
名称:  1.jpg
查看次数: 139
文件大小:  6.2 KB

在启动服务前,先打开dbgview,就可以看到如下信息:
名称:  2.JPG
查看次数: 142
文件大小:  15.6 KB

可以看到服务已经启动成功了,也就是说,驱动已经成功加载了!

INF文件剖析(包含完整代码教学) INF文件做了整体剖析,对INF、INX文件的生成方式做了简单介绍,对其中域、指令的概念做了梳理,结尾有梳理好的脑图,仅供参考!INF (文件) 安装信息是驱动程序包中的文本文件,其中包含设备安装组件在设备上安装驱动程序包时使用的所有信息。 阅读详情

相关推荐

如何编写 INF 文件

如何编写 INF 文件INF文件全称Information File文件,是Winodws操作系统下用来描绘设备或文件等数据信息的文件INF文件是由规范的ASCII码组成,您能够用任何一款文字编辑器查看修正其中的内容。普通我们总是以为INF文件是系统设备的驱动程序,其实这是错误的认识,Windows之所以在装置某些硬件的驱动时提示需求INF文件是由于INF文件为该设备提供了一个全面描绘硬件参数和相应驱动文件(DLL文件)的信息。就好比我们看着阐明书装置电脑硬件一样,我们就是Windows系统,阐明书就是I

hutao1101175783的专栏 2559

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

inf文件

王马的博客 1323

关于编程中遇到inf的情况

在进行编程的过程中我们常常会由于没有对分母是否为0进行判断,从而造成结果值为inf或-inf,对这个问题,从根本上杜绝的话就是在做除法的时候对分母进行是否为0的判断,若后续需要对一个数是否为inf或-inf作判断的话,我们可以采用如下方法来做 一、利用C++中的numeric_limits来实现 在C++的头文件#include 中,有各个类型的最值。 如int 对应的最大最小值:std:

xiaxiazls的博客 1万+

Windows驱动开发入门 --WDM inf文件模板

本文介绍在安装WDM驱动时如何编写inf文件。由于inf文件的规则比较负责,写法也比多,故本文介绍的是通过Visual Studio开发WDM驱动时的inf模板文件的通用写法。 模板文件如下: ; ; 用于Visual Studio的inf模板 ; [Version] ; 固定写法 Signature="$WINDOWS NT$" ; %ClassName% 类似C语言中的宏,值定义在[Stri...

while(1) { smile(); } 2035

INF文件编写

这部分主要讲解inf文件编写,其实inf文件不仅仅可以用来做为安装驱动使用,还有很多其他用法,这里就不涉及了,先讲下inf的语法,这些语法都是google上有的。 inf文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑。inf是不区分大小写的。 inf中包含各节的含义: 1、Version节 每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现"signature="$CHICAGO$""这样的条目则表示该INF文...

hutao1101175783的专栏 1620

编写INF文件进行文件安装

◆ 丁健 张万 江南安装信息(Setup Information)文件Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格

Magma网摘博客 868

INF文件编写规则

INF文件即Device Information File(设备信息文件),主要用来指示安装Windows驱动程序,一般一个INF文件需要配合一个INF文件才可进行安装。 INF文件Windows系统下用来描述设备或文件等数据信息的文件,是一个文本文件INF的组成有节(Sections)、键(Key)和值(value)3部分,INF文件的节按照层次结构排列,以方括号的形式开始,后面紧跟该节的各个项和值。INF文件的节主要分为以下: 1.【Version】 INF文件的开始,版本信息描述 【Versio

hutao1101175783的专栏 1154

active cab inf文件编写

最近做了一个网页下载控件。主要就是实现ActiveX控件功能。 由于自己是第一次做,不熟悉其过程。中间走了很多弯路。现在把走过得路程记录部分,希望对其他人可以有点用。 首先制作一个你自己的DLL文件。这里就不累述DLL的制作了。网上DLL的制作多的是。下面介绍下inf文件的写。 在自己弄的过程中在网络上也搜索了很多资料。但都不全面,甚至有错误。下面自己的...

aixiao0036的博客 182

编写INF文件进行文件安装(上)

安装信息(Setup Information)文件Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格免费,透明度高

her0z的专栏 414

inf 安装信息文件编写

1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,Cabinet SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。2、制作cab文件时需要将所有的相关文

xwtcss的专栏 946

INF文件编写说明

     最近要在web中播放视频,但下端厂商不给提供CAB包,只提供一堆dll和ocx,无奈只有自己打了,难点在哪儿?编写INF文件上。摸爬滚打,找了一天,终于解决了,现在分享一篇INF文件介绍的文章。   原文地址:http://blog.csdn.net/shanhe/archive/2004/12/25/229368.aspx     INF文件必须包含以下规则:       ...

fanday的专栏 494

编写INF文件进行文件安装(下)

[Version]节 任何INF文件的第一个小节均是[Version],又称为INF文件头。一般有如下语句: [Version]Signature=“$Chicago$” LayoutFile=filename.inf 其中,Signature的值应为“$Chicago$”、“$Windows 95$”或“$Windows NT$”中的一个(不区分...

weixin_33924770的博客 239
上一篇: DDK编译命令
下一篇: Windows 文件过滤驱动经验总结
trents
博客等级 码龄18年 25粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值