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 编写器定义的部分中指定此指令:
- 由 DDInstall 中的 AddInterface 指令引用的 add-interface-section。“接口”部分。
- InterfaceInstall32 节中引用的 install-interface-section
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的 DelFiles 和 CopyFiles 指令。
注解
重要
必须谨慎使用此指令。 强烈建议不要在 INF 文件中对即插即用 (PnP) 函数驱动程序使用 DelFiles 指令。
任何 file-list-section 名称对于 INF 文件必须是唯一的,但它可由同一 INF 中的其他位置的 CopyFiles、 DelFiles 或 RenFiles 指令引用。 此类 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
; ...
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈