Поделиться через


Директива INF DelFiles

Внимание!

Если вы создаете универсальный пакет или пакет драйвера Windows, эта директива является недопустимой. См. статью Использование универсального INF-файла и начало работы с драйверами Windows.

Директива DelFiles ссылается на раздел, определенный INF-writer, в другом месте 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:

Каждый именованный раздел, на который ссылается директива DelFiles , имеет одну или несколько записей следующего вида:

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

Раздел списка файлов может содержать любое количество записей, каждая из которых размещена в отдельной строке.

Записи

destination-file-name
Указывает имя файла, удаляемого из места назначения.

Не указывайте файл, указанный в директиве CopyFiles . Если файл указан как в разделе CopyFiles, так и в разделе, на который ссылается DelFiles, и файл в настоящее время присутствует в системе с допустимой подписью, операционная система может оптимизировать операцию копирования, но выполнить операцию удаления. Это, скорее всего, не то, что предназначено для записи INF.

Примечание

Вы не можете использовать маркер %strkey% для указания записи destination-file-name. Дополнительные сведения о маркерах %strkey% см. в разделе Inf Strings Section.

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 , ссылающимися на один и тот же раздел file-list-section.

Комментарии

Важно!

Эту директиву необходимо использовать с осторожностью. Настоятельно рекомендуется не использовать директиву DelFiles в INF-файле для драйвера функции Plug and Play (PnP).

Любое имя раздела списка файлов должно быть уникальным для INF-файла, но на него могут ссылаться директивы CopyFiles, DelFiles или RenFiles в других частях того же INF-файла. Такое имя раздела, определяемое inf-writer, должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в статье Общие правила синтаксиса для ФАЙЛОВ INF.

Директива DelFiles не поддерживает декорирование имени раздела списка файлов с помощью системного расширения платформы (.nt, .ntx86, .ntia64, .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 
; ...

См. также раздел

AddInterface

ClassInstall32

CopyFiles

DDInstall

DestinationDirs

InterfaceInstall32

RenFiles

Строки