INF DelFiles 指令

注意

如果正在生成通用或 Windows 驱动程序包,则本指令无效。 请参阅使用通用 INF 文件Windows 驱动程序开发入门

DelFiles 指令引用 INF 文件中其他地方的 INF 编写器定义的部分,并导致在对引用 DelFiles 指令的部分进行操作时删除该文件列表。

[DDInstall] | 
[DDInstall.CoInstallers] | 
[ClassInstall32] | 
[ClassInstall32.ntx86] | 
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows) 
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 
  
Delfiles=file-list-section[,file-list-section]... 

DelFiles 指令可以在正式语法语句所示的任何部分中指定。 此指令也可以在以下任何 INF 编写器定义的部分中指定:

DelFiles 指令引用的每个已命名部分都有一个或多个条目,其形式如下:

[file-list-section]
 
destination-file-name[,,,flag]
...

file-list-section 可以有任意数量的条目,每个条目单独一行。

条目

destination-file-name
指定要从目标删除的文件名。

请勿指定 CopyFiles 指令中列出的文件。 如果一个文件同时列在 CopyFiles 引用部分和 DelFiles 引用部分中,而该文件当前在系统中具有有效签名,则操作系统可能会优化去除复制操作,但执行删除操作。 这很可能不是 INF 编写器的本意。

注意

不能使用 %strkey% 标记来指定目标文件名条目。 有关 %strkey% 标记的详细信息,请参阅 INF 字符串部分

flag
此可选值可以是下列值之一,以十六进制表示(如下所示),或者也可以是十进制值:

0x00000001 (DELFLG_IN_USE)
删除命名的文件,可能是在安装过程中使用了该文件。

如果给定文件在 INF 处理过程中正在使用而无法删除,则在 INF 中设置此标志值会将文件删除操作安排在系统重新启动之后。 否则,此类文件将不会被删除。

0x00010000 (DELFLG_IN_USE1)(Windows 2000 或更高版本的 Windows)
此标志是 DELFLG_IN_USE 标志的高字版本,具有相同的用途和效果。 只有在基于 NT 的系统上安装时,才能使用该标志。

在 INF 中设置此标志值可防止与 INF 中的 COPYFLG_WARN_IF_SKIP 标志发生冲突,因为 DelFilesCopyFiles 指令引用了相同的 file-list-section

注解

重要

必须谨慎使用此指令。 强烈建议不要在即插即用 (PnP) 功能驱动程序的 INF 文件中使用 DelFiles 指令。

任何 file-list-section 名称在 INF 文件中都必须是唯一的,但可以被同一 INF 文件中的 CopyFilesDelFilesRenFiles 指令引用。 此类 INF-writer-defined 部分名称必须遵循定义部分名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则

DelFiles 指令不支持使用系统定义的平台扩展名(.nt.ntx86.ntia64.ntamd64.ntarm.ntarm64)来修饰 file-list-section 名称。

INF 文件的 DestinationDirs 部分控制所有文件删除操作的目标,与包含特定 DelFiles 指令的部分无关。 如果 DelFiles 指令引用的命名部分在同一 INF 的 DestinationDirs 部分中有相应条目,则该条目将明确指定目标目录,命名部分中列出的所有文件都将从中删除。 如果命名的部分未列在 DestinationDirs 部分中,则 Windows 将使用 INF 中的 DefaultDestDir 条目。

示例

此示例展示了 DestinationDirs 部分如何指定在处理简单设备驱动程序 INF 时进行删除文件操作的路径。

[DestinationDirs]
DefaultDestDir = 12  ; DIRID_DRIVERS 

; ... 

[AHA154X]
CopyFiles=@AHA154x.MPD
DelFiles=ASPIDEV ; defines delete-files section name
; ... some other directives and sections omitted here

[ASPIDEV]
VASPID.SYS ; name of file to be deleted, if it exists on target 
; ...

另请参阅

AddInterface

ClassInstall32

CopyFiles

DDInstall

DestinationDirs

InterfaceInstall32

RenFiles

字符串