⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 解剖inf文件的结构.htm

📁 INF安装文件格式介绍和举例,对于编写windows驱动程序的朋友非常有用
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>INF是Device INFormation File的英文缩写</title>
</head>

<body>

<div class="postTitle">
  <a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/ttyp/archive/2005/07/21/197074.html">INF文件格式小结</a>
</div>
<div class="postText">
  <div twffan="done">
    INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <strong>INFI的功能</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    1 复制文件、删除文件、或重新命名文件。<br>
    2 新增或删除注册表(Registry)中的项目。<br>
    3 修改重要的系统设置文件(如 Autoexec.bat、Config.sys、.INI 
    等)
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <strong>INF的规则</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    INF是纯文本文件,它是分节的,这点和INI文件类似,每节以&quot;[]&quot;扩起来,每一个节名最长为255个字符 
    (Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都由=分开,如a=&quot;b&quot;。如果每一个条目的等号后有多个值, 
    则每一个值之间用&quot;,&quot;号分隔开。INF对大小写不敏感,行注释语句命令是&quot;;&quot;,类似VB里的'。如果一行写不下,使用&quot;\&quot;来换行。
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <strong>INF的运行</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    .INF文件是由Windows的SetupAPI解释执行的脚本文件,它的运行过程很简单,是一种线性的执行, 
    线性的意思就是.INF文件的运行过程不存在分支语句,也就是没有条件语句,一旦开始执行,就是沿着固定的路线运行。它的运行是按照节为单位来执行的,从 
    某一个[Install]节开始执行,从上到下执行该节中的条目,如果该条目是一个节,那么就一条条执行子节中的条目,如此递归执行。在WINDOW上运 
    行只要右击这个文件,点击安装即可。
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    <strong style="font-size: 12pt;">INF的语法结构</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <span style="color: rgb(0, 0, 255);">;指定版本和签名节<br>
    </span>[VERSION]<br>
    ;系统根据Signuture看是不是适合当前版本,如果适合的话就执行,否则不执行,当然强制安装是可以的<br>
    ;用于WIN9X<br>
    Signature=&quot;$CHICAGO$&quot;<br>
    ;WINNT+<br>
    ;Signature=&quot;$Windows NT$&quot;
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;指定安装文件布局<br>
    该行是可选的,如果没有提供布局信息文件,则在INF文件内必须包含[SourceDisksNames]和[SourceDisksFiles]节<br>
    LayoutFile=filename.inf
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    [SourceDisksNames]节<br>
    [SourceDisksNames]节罗列源文件所在盘符序列码、盘描述符、盘卷标号和盘序列号。<br>
    [SourceDisksNames]节内语句的语法为:<br>
    disk-ordinal=“disk-description”,disk-label,disk-serial-number<br>
    其中disk-ordinal为必选项,是盘符序列码,标识一个源盘,具有惟一性,一般可设置为从1开始递增的整数,0不是一个有效的盘符序列码。当存在多个源盘时,盘符序列码之间不能重复。<br>
    disk-description为必选项,是盘描述符,用双引号括起的字符串或字符串宏描述盘的内容或目的。安装引擎将该字符串显示在对话框内以提示用户。<br>
    disk-label为源盘的卷标识。<br>
    disk-serial-number未使用,但必须被设置为0。<br>
    [SourceDisksFiles]节<br>
    [SourceDisksFiles]节指定安装时使用的源文件和盘符序列码、盘描述符。 
    [SourceDisksFiles]节内语句的语法为:<br>
    file-name=disk-number[,subdir] [,file-size]<br>
    其中file-name为必选项,是源盘上文件的名称。<br>
    disk-number是包含file-name指定文件所在源盘的盘符序列码,该盘符序列码需在[SourceDisksNames]节中列出,并大于或等于1。<br>
    Subdir为可选项,指定文件所在源盘的子目录,如省略则源盘为缺省安装路径。<br>
    file-size为可选项,表明文件的大小,以字节为单位。
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    <strong>[DestinationDirs]</strong><br>
    ;指定CopyFiles、RenFiles或DelFiles入口的缺省操作目录<br>
    ;语法file-list-section=LDID,[Subdir]<br>
    ;LDID列表如下:<br>
    ;01 ;current directory<br>
    ;04 ;backup directory<br>
    ;10 ;windows directory<br>
    ;11 ;system dir<br>
    ;12 ;iosubsys<br>
    ;13 ;command<br>
    ;14 ;control panel directory<br>
    ;15 ;printers directory<br>
    ;16 ;workgrou dir<br>
    ;17 ;inf dir<br>
    ;18 ;help dir<br>
    ;19 ;administration dir<br>
    ;20 ;fonts<br>
    ;21 ;viewers<br>
    ;22 ;vmm32<br>
    ;23 ;color dir<br>
    ;25 ;shared dir<br>
    ;26 ;winboot<br>
    ;28 ;host winboot<br>
    ;30 ;root of boot drive<br>
    ;31 ;root of host drive of a virtual boot drive<br>
    ;32 ;old windows dir if exists
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;以下例子为安装到window\web目录下<br>
    ;DefaultDestDir=10,&quot;web&quot;
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <strong>[Install]<br>
    </strong>提供了一个INF文件安装过程的总览,它识别文件内其他包含安装信息节的详细动作,是Windows内建安装函数识别安装过程和内容的真正入口[Install]
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;[Install]节分[DefaultInstall]和[OtherInstall]两类<br>
    ;[DefaultInstall]节节名DefaultInstall如前面表格内容所述被显式地在注册表中指定。<br>
    ;该节也是系统获取INF文件中安装信息的首要入口,当用户右击INF文件选“安装”时该节内容被执行。<br>
    ;[OtherInstall]与[DefaultInstall]节遵循相同的语法,但必须被显式地调用,常被用来定义反安装动作
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;缺省安装节<br>
    <strong>[DefaultInstall]</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;指明添加注册表的子节,等号后面的为自定义节名,例子见[add]节<br>
    ADDREG=add
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;指明要删除的注册表子节,等号后面的为自定义节名<br>
    DELREG=del
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;指明要要复制的文件子节,用于安装,Copyfiles命令可以替换系统正在访问的文件。这些功能通过普通的del和copy命令都无法实现<br>
    CopyFiles=cfile
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;指明要要删除的文件子节,用于反安装,多个节以逗号隔开,该命令如果发现要删除的文件被锁定,就会把文件放到系统删除队列中排队<br>
    ;等系统重启动的时候,该文件就自动被删除了<br>
    <strong>DelFiles=删除文件段<br>
    </strong>;[删除文件段]<br>
    ;文件名列表<br>
    ;例子:<br>
    ;a.exe<br>
    ;b.sys
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;重命名文件段<br>
    <strong>RenFiles=重命名文件段</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;[重命名文件段]<br>
    ;语法:<br>
    ;[file-list-section]<br>
    ;new-file-name,old-file-name<br>
    ;file1,file2&nbsp;;修改文件名file1为file2
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    <br>
    ;更新INI文件段内容子节<br>
    <strong>UpdateInis = 更新INI文件段</strong>
  </div>
  <div twffan="done">
    &nbsp;
  </div>
  <div twffan="done">
    ;[更新INI文件段]<br>
    ;ini-file, ini-section, [old-ini-entry], [new-ini-entry], [flags]<br>
    ;ini-file&nbsp;包含要更改条目的 .ini 文件名<br>
    ;ini-section&nbsp;包含要更改条目的节名<br>
    ;old-ini-entry&nbsp;可选,常用形式为 Key=Value<br>
    ;new-ini-entry&nbsp;可选,常用形式为<br>
    ;Key=Value。flags 是可选操作标记
  </div>
  <div twffan="done">
    &nbsp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -