INF-DelFiles-Direktive

Achtung

Wenn Sie ein Universal- oder Windows-Treiber-Paket erstellen, ist diese Direktive nicht gültig. Siehe Verwenden einer universellen INF-Datei und Erste Schritte bei der Entwicklung von Windows-Treibern.

Eine Direktive DelFiles verweist auf einen von INF-Autor*innen definierten Abschnitt an anderer Stelle in der INF-Datei und bewirkt, dass diese Liste von Dateien im Kontext von Vorgängen in dem Abschnitt gelöscht wird, in dem die verweisende Direktive DelFiles angegeben ist.

[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]... 

Eine DelFiles-Direktive kann in jedem der Abschnitte angegeben werden, die in der formalen Syntaxanweisung aufgeführt sind. Diese Direktive kann auch in einem der folgenden von INF-Autor*innen definierten Abschnitte angegeben werden:

Jeder benannte Abschnitt, auf den eine Direktive DelFiles verweist, hat einen oder mehrere Einträge der folgenden Form:

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

Ein file-list-section kann eine beliebige Anzahl von Einträgen haben, die jeweils in einer eigenen Zeile stehen.

Entries

destination-file-name
Gibt den Namen der Datei an, die aus dem Ziel gelöscht werden soll.

Geben Sie keine Datei an, die in einer CopyFiles-Direktive aufgeführt ist. Wenn eine Datei sowohl in einem CopyFiles-referenzierten als auch in einem DelFiles-referenzierten Abschnitt aufgeführt ist und die Datei derzeit mit einer gültigen Signatur auf dem System vorhanden ist, optimiert das Betriebssystem möglicherweise den Kopiervorgang weg, führt aber den Löschvorgang durch. Das ist sehr wahrscheinlich nicht das, was Autor*innen der INF beabsichtigt haben.

Hinweis

Sie können das Token %strkey% nicht verwenden, um den Eintrag für den Zieldateinamen anzugeben. Weitere Informationen über %strkey% Token finden Sie unter INF Zeichenfolgen Abschnitt.

flag
Dieser optionale Wert kann einer der folgenden sein, ausgedrückt in hexadezimaler Notation wie hier gezeigt oder als Dezimalwert:

0x00000001 (DELFLG_IN_USE)
Löschen Sie die benannte Datei, möglicherweise nachdem sie während des Installationsvorgangs verwendet wurde.

Wenn Sie diesen Flag-Wert in einer INF festlegen, wird der Vorgang zum Löschen der Datei in die Warteschlange gestellt, bis das System neu gestartet wurde, falls die angegebene Datei nicht gelöscht werden kann, weil sie während der Verarbeitung dieser INF in Gebrauch ist. Andernfalls wird eine solche Datei nicht gelöscht.

0x00010000 (DELFLG_IN_USE1) (Windows 2000 oder spätere Versionen von Windows)
Dieses Flag ist eine High-Word-Version des Flags DELFLG_IN_USE und hat den gleichen Zweck und die gleiche Wirkung. Dieses Flag sollte nur für Installationen auf NT-basierten Systemen verwendet werden.

Das Festlegen dieses Flags in einer INF verhindert Konflikte mit dem Flag COPYFLG_WARN_IF_SKIP in einer INF mit den beiden Direktiven DelFiles und CopyFiles, die auf dieselbe file-list-section verweisen.

Hinweise

Wichtig

Diese Direktive muss mit Bedacht verwendet werden. Wir empfehlen Ihnen dringend, die Direktive DelFiles in der INF-Datei für einen Plug-and-Play (PnP)-Funktionstreiber nicht zu verwenden.

Jeder file-list-section-Name muss in der INF-Datei eindeutig sein, kann aber von CopyFiles, DelFiles oder RenFiles-Direktiven an anderer Stelle in derselben INF referenziert werden. Ein solcher von INF-Autor*innen definierter Abschnittsname muss den allgemeinen Regeln für die Definition von Abschnittsnamen entsprechen. Weitere Informationen zu diesen Regeln finden Sie unter Allgemeine Syntaxregeln für INF-Dateien.

Die Direktive DelFiles unterstützt nicht die Auszeichnung eines file-list-section-Namens mit einer systemdefinierten Plattformerweiterung (.nt, .ntx86, .ntia64, .ntamd64, .ntarm oder .ntarm64).

Der Abschnitt DestinationDirs der INF-Datei steuert das Ziel für alle Vorgänge zum Löschen von Dateien, unabhängig von dem Abschnitt, der eine bestimmte DelFiles-Direktive enthält. Wenn ein benannter Abschnitt, auf den eine Direktive DelFiles verweist, einen entsprechenden Eintrag im Abschnitt DestinationDirs derselben INF-Datei hat, gibt dieser Eintrag explizit das Zielverzeichnis an, aus dem alle Dateien, die im benannten Abschnitt aufgeführt sind, gelöscht werden. Wenn der genannte Abschnitt nicht im Abschnitt DestinationDirs aufgeführt ist, verwendet Windows den Eintrag DefaultDestDir in der INF.

Beispiele

Dieses Beispiel zeigt, wie der Abschnitt DestinationDirs den Pfad für einen Vorgang zum Löschen einer Datei angibt, der bei der Verarbeitung einer einfachen Gerätetreiber-INF auftritt.

[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 
; ...

Siehe auch

AddInterface

ClassInstall32

CopyFiles

DDInstall

DestinationDirs

InterfaceInstall32

RenFiles

Zeichenfolgen