分享

INF安装信息文件4

 菜园子图书馆 2014-01-26

㈥、[DestinationDirs] 节:指定硬盘上复制、删除或重命名节文件的位置(例如 \Windows 或 Windows\System)。

 

  .INF 文件通过 [DestinationDirs] 节来指定操作的目标路径,语法如下:

 

 

[DestinationDirs]
file-list-section =ldid[, subdir ]
DefaultDestDir=ldid[, subdir ]

  [DestinationDirs] 节定义了 [file-list-section] 节中指定的操作(可以是 CopyFilesRenFilesDelFiles 节)的目标目录。DefaultDestDir命令可以为 .INF 文件中的任何没有明确在 [DestinationDirs] 节中命名的CopyFilesRenFilesDelFiles节指定默认目标文件夹。

 

 


  在 .INF 文件中,使用逻辑磁盘标识符 (LDID) 来表示路径,如下表:

 

 

逻辑磁盘标识符 (LDID)

-1 绝对路径

00 Null LDID - 可用于创建新的 LDID
01 Source Drive:\pathname (inf文件所在目录的路径)
10 Windows 文件夹(等价于%windir%目录 )
11 System 文件夹 (98系统是%SystemRoot%\system,2000系统是%SystemRoot%\system32
12 IOSubsys 文件夹 (98系统是%SystemRoot%\system\Insubsys,2000系统%SystemRoot%\system32\Drivers
13 Command 文件夹
17 Inf 文件夹 (%SystemRoot%\inf目录
18 Help 文件夹 (帮助目录)
20 Fonts (字体目录)
21 Viewers (查看器目录)
22 VMM32
23 Color 文件夹 (颜色ICM)
24 包含 Windows 文件夹的驱动器根目录

25 共享目录
28 Host Winboot
30 启动盘(引导驱动器)的根文件夹
31 虚拟启动盘的主驱动器根文件夹

51 假脱机目录

52 假脱机驱动程序目录

53 用户配置文件目录

54 Windows 2000 引导目录

55 打印处理器目录

16406 All Users\Start\Menu

16407 All Users\Start\Menu\Program

16408 All Users\Start\Menu\Program\Startup

16409 All Users\Start\Desktop

16415 All Users\Start\Favorites

16419 All Users\Start\Application Data

16422 Program Files

16427 Program Files\Common

16429 All Users\Templates

16430 All Users\Documents

 

 

  如示例01中,这行语句“VM.XPTWAIN.CopyFiles = 10, twain_32\VM301b”表明VM.XPTWAIN.CopyFiles这个文件列表中文件的目标路径是%windir%\system32\twain_32\VM301b,其中 10 代表Windows所在的文件夹,也就是说VM.XPTWAIN.CopyFiles这个文件列表(请看示例03)中文件VM31bTXP.DS在安装驱动的时候将会被复制到%windir%\system32\twain_32\VM301b文件夹。而这行“VM.Config.CopyFiles = 10, inf”,意思是config.set这个文件将会被复制到 10 下的inf文件夹,也就是%windir%\inf文件夹中。当然,他也可以写成“VM.Config.CopyFiles = 17”,效果是一样的。 

 

 

;示例03 寒夜孤星 usbvm31b.inf华尔特F18型摄像头驱动

。。。。。。

[VM.XPTWAIN.CopyFiles]
VM31bTXP.DS

[VM.Config.CopyFiles]
config.set

。。。。。。

 

 

 

㈦、[Strings] 节:定义并列出上面所使用的可本地化字符串。


  如果某个特定的字符串会在 .INF 文件中频繁地出现,那么在此节中为它们定义一个字符串变量将会是个好选择。 

  尽管 [Strings] 节一般被放置在 .INF 文件的末尾,字符串宏可在 .INF 文件任何地方使用,安装引擎解释、展开字符串宏为给定的长字符串并做进一步处理。字符串宏在使用时需用百分号(%)括起。

[Strings] 节内语句的语法为:

strings-key=value
其中strings-key为由字母或数字等可打印字符组成的宏名。
Value为被双引号括起的长字符串,字符串可由字母、数字或其他可打印字符(意思是可以使用汉字哦)组成。

 

例如示例01中,在 [Strings] 节中定义了 HwMfg="VM" 。而在 [Manufacturer] 节中便使用了%HwMfg%=VM,NT 。同时,HwMfg变量被用%括了起来。

 

㈦、[FileCopy/Delete/RenameSection(s)]  节:列出要复制、删除或重命名的文件。节的名字是CopyFiles,DelFiles,RenFiles。

 

[CopyFiles]节,复制文件。

 

  .INF 文件的[CopyFiles]节有一个唯一的名字,并从[DDInstall]节的CopyFiles指令引用它。该节中的每个项采用如下形式:

destination – filename[,source- filename,temp-filename,flag]

  这里的destiantion-filename是最重要复制的目标文件名。如果源文件名不相同,必须规定source – filenameTemp-filename值不再适用(虽然 Windows 98仍然要求),它在系统再次引导之前规定新文件的临时文件名。对于Windows 2000等,忽略此值。

  Falg 值规定对新目标文件的处理,其描述见下表 CopyFiles标志定义 。可以对falg值中的各个为进行“或”运算,以使多个操作起作用。几种操作是互斥的(例如,WARN_IF_SKIP和NOSKIP),有疑问时应当查阅有关文档。

  因为[CopyFiles]节的项的语法没有包含一个可选项来规定源文件的磁盘或路径,必须使用其他 .INF[SourceDisksNames][SourceDisksFiles]。然而[CopyFiles]节中各项复制的文件由另一个.INF[DestiantionDirs]节指定。

CopyFiles标志定义

 位置  符号名称  说明
 0x0400  COPYFLG_REPLACEONLY  如果源文件存在则复制
 0x0800  COPYFLG_NODECOMP  不解压缩复制
 0x0008  COPYFLG_FORCE_FILE_IN_USE  对源文件执行延迟重命名,强制重新引导
 0x0010  COPYFLG_NO_OVERWRITE  不替换已有源文件
 0x1000  COPYFLG_REPLACE_BOOT_FILE  文件是系统装入程序的一部分,强制重新引导
 0x2000  COPYFLG_NOPRUNE  强制复制操作,即使安装者认为不必要也要复制
 0x0020  COPYFLG_NO_VERSION_DIALOG  不要覆盖较新的文件(如果安装包被数字签名则被忽略)
 0x0004  COPYFLG_NOVERSIONCHECK  总是覆盖目标文件
 0x0040  COPYFLG_OVERWRITE_OLDER_ONLY  覆盖较旧的目标文件
 0x0001  COPYFLG_WARN_IF_SKIP  用户跳过文件时发出警告
 0x0002  COPYFLG_NOSKIP  不允许用户跳过文件

 

 

[DelFiles]节,删除文件。

[RenFiles]节,重命令文件。


㈧、[RegistryUpdateSection(s)] 节:指定在注册表中添加或删除的项目。节的名字是AddReg,DelReg。

 

[addreg]节,指定新的键和值。

 

  一个INF文件的[AddReg]节被唯一命名,并从[DDInstall]节中的AddReg指令引用它。此节的目的是提供增加或者修改目标系统注册表中的项目。本节中每个项目采取如下形式:

 reg-root[,subkeyvalue- nameflagsvalue]

  这里的reg- root是注册表库(hive)之一的缩写。

 

   说明
 HKCR  HKEY_CLASSES_ROOT
 HKCU  HKEY_CURRENT_USER
 HKLM  HKEY_LOCAL_MACHINE
 HKU  HKEY_USERS
 HKR  将被安装的设备的硬件子键

 

  值表示要被修改的注册表库。Subbkey值表示库底下的键名,在层次结构中子键用反斜线(\)字符隔开。例如,software\W2KdriverBook\Driver\SetingHKCU或者HKLM库的一个有效子键。

  Value-name指定要增加或修改的注册表值。每个注册表键包含一个或多个值,保存不同类型的数据。注册表编辑器(Registy Editor)在右边面板中列出子键的值。值名和值数据同时在该面板中出现,左边面板只列出子键。

  Flags指定数据保存的类型,flages可能的位置见下表所列:

 AddReg Flags 定义

 位值  符号名  说明
 0x00000  FLG_ADDREG_TYPE_SZ  空结束字符串
 0x00001  FLG_ADDREG_BINVALUETYPE  二进制数据
 0x00002  FLG_ADDREG_NOCLOBBER  不替换已有值
 0x00004  FLG_ADDREG_DELVALUE  删除子键或值名
 0x00010  FLG_ADDREG_KEYONLY  建立子键,忽略值
 0x00020  FLG_ADDREG_OVERWRITEONLY  如果值存在,则替换他,否则什么也不做
 0x10000  FLG_ADDREG_TYPE_MULTI_SZ  REG__MULTI_SZ数据(数组)
 0x00008  FLG_ADDREG_APPEND  添加到已有的REG__MULTI_SZ数组
 0x20000  FLG_ADDREG_TYPE_EXPAND_SZ  REG_EXPAND_SZ数据
 0x10001  FLG_ADDREG_TYPE_DWORD  DWORD数据
 0x20001  FLG_ADDREG_TYPE_NONE  REG_NONE数据

 

[Delreg]节,删除的键和值。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多