Директива 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-writer:
- Раздел надстройки, на который ссылается директива AddInterface в DDInstall. Раздел интерфейсов.
- Раздел install-interface-, на который ссылается раздел InterfaceInstall32
Каждый именованный раздел, на который ссылается директива DelFiles , содержит одну или несколько записей следующей формы:
[file-list-section]
destination-file-name[,,,flag]
...
В разделе списка файлов может быть любое количество записей, каждое из которых содержит отдельную строку.
Операции
имя целевого файла
Указывает имя файла, который нужно удалить из назначения.
Не указывайте файл, указанный в директиве CopyFiles . Если файл указан как в разделе copyFiles, так и в разделе DelFiles, а файл в настоящее время присутствует в системе с допустимой подписью, операционная система может оптимизировать операцию копирования, но выполнить операцию удаления. Это, скорее всего , не то, что он намеревался.
Примечание.
Маркер %strkey% нельзя использовать для указания записи имени целевого файла. Дополнительные сведения о маркерах %strkey% см. в разделе INF Strings.
flag
Это необязательное значение может быть одним из следующих значений, выраженных в шестнадцатеричной нотации, как показано здесь или как десятичное значение:
0x00000001 (DELFLG_IN_USE)
Удалите именованный файл, возможно, после того, как он использовался во время установки.
Установка этого значения флага в очереди INF выполняет операцию удаления файлов до тех пор, пока система не перезагрузится, если данный файл не может быть удален, так как он используется при обработке этого INF-файла. В противном случае такой файл не будет удален.
0x00010000 (DELFLG_IN_USE1) (Windows 2000 или более поздние версии Windows)
Этот флаг представляет собой высокословную версию флага DELFLG_IN_USE, и она имеет ту же цель и эффект. Этот флаг следует использовать только для установки в системах на основе NT.
Установка этого значения флага в INF предотвращает конфликты с флагом COPYFLG_WARN_IF_SKIP в INF с директивами DelFiles и CopyFiles, ссылающимися на один и тот же раздел списка файлов.
Замечания
Внимание
Эту директиву следует тщательно использовать. Настоятельно рекомендуется не использовать директиву DelFiles в INF-файле для драйвера функции самонастраивающийся (PnP).
Любое имя раздела списка файлов должно быть уникальным для INF-файла, но на него можно ссылаться директивы CopyFiles, DelFiles или RenFiles в другом месте в том же INF. Такое имя раздела INF-writer должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для INF-файлов.
Директива DelFiles не поддерживает декорирование имени раздела файла с расширением платформы (.nt, ntx86, .ntia64, .ntamd64, .ntamd64, .ntarm или NTARM64).
Раздел DestinationDirs в INF-файле управляет назначением для всех операций удаления файлов независимо от раздела, содержащего определенную директиву DelFiles . Если именованный раздел, на который ссылается директива DelFiles, имеет соответствующую запись в разделе DestinationDirs одного и того же INF, то эта запись явно указывает целевой каталог назначения, из которого будут удалены все файлы, перечисленные в именованном разделе. Если именованный раздел не указан в разделе DestinationDirs , Windows использует запись DefaultDestDir в INF.
Примеры
В этом примере показано, как раздел 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
; ...