INF DelFiles 指令

注意

如果要生成通用或 Windows 驱动程序包,则此指令无效。 请参阅在 Windows 驱动程序中使用通用 INF 文件和入门。

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% 令牌指定 destination-file-name 条目。 有关 %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标志冲突,该标志具有引用同一 file-list-section的 DelFilesCopyFiles 指令。

注解

重要

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

任何 file-list-section 名称对于 INF 文件必须是唯一的,但它可由同一 INF 中的其他位置的 CopyFilesDelFilesRenFiles 指令引用。 此类 INF 编写器定义的节名称必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的一般语法规则

DelFiles 指令不支持使用系统定义的平台扩展名 (.nt、.ntx86、.ntia64.ntamd64.ntarm.ntarm64) 修饰文件列表节名称。

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

字符串