INF安装信息文件④

㈥、[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[,subkey,value- name,flags ,value]

  这里的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]节,删除的键和值。

下面是Spring5的配置文件,该文件配置了Spring5 AOP中的通知,请分析代码并回答后面的问题。(10分) ‍ ‏applicationContext.xml: ‍ ‏① <?xml version="1.0" encoding="UTF-8"?> ‍ ‏② <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" ‍ ‏ "https://www.springframework.org/dtd/spring-beans-2.0.dtd" [ ‍ ‏<!ENTITY contextInclude SYSTEM ‍ ‏ "org/springframework/web/context/WEB-INF/contextInclude.xml">]> ‍ ‏③ <beans> ‍ ‏④  <bean id="BeforeAdvice" ‍ ‏⑤  class="adviceexample.GettingBeforeAdvice"></bean> ‍ ‏⑥  <bean id="AfterAdvice" class="adviceexample.GettingAfterAdvice"></bean> ‍ ‏⑦  <bean id="proxy" ‍ ‏⑧  class="org.springframework.aop.framework.ProxyFactoryBean"> ‍ ‏⑨  <property name="proxyInterfaces" ‍ ‏⑩  value="adviceexample.Reception"></property> ‍ ‏⑪  <property name="interceptorNames"> ‍ ‏⑫  <list> ‍ ‏⑬  <value>BeforeAdvice</value> ‍ ‏⑭  <value>AfterAdvice</value> ‍ ‏⑮  </list> ‍ ‏⑯  </property> ‍ ‏⑰  <property name="target" ref="target"></property> ‍ ‏⑱  </bean> ‍ ‏⑲  <bean id="target" class="adviceexample.ConcreteReception"></bean> ‍ ‏⑳ </beans> ‍ ‏(1)上面文件配置了的两种通知是用来做什么的(4分) ‍ ‏(2)上面文件配置了代理工厂对象proxy,该对象有三个属性,依次是代理接口,通知和目标对象,其中,代理接口是什么?(2分) ‍ ‏(3)分析上面代码说明AOP主要包含哪些内容?(4分)
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值