Directive INF DelFiles
Attention
Si vous créez un package de pilote universel ou Windows, cette directive n’est pas valide. Veuillez consulter la section Utilisation d’un fichier INF universel et Premiers pas dans le développement de pilotes Windows.
Une directive DelFiles fait référence à une section définie par l’auteur de l’INF ailleurs dans le fichier INF, et entraîne la suppression de cette liste de fichiers dans le cadre des opérations sur la section dans laquelle la directive DelFiles de référence est spécifiée.
[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]...
Une directive DelFiles peut être spécifiée dans n’importe laquelle des sections figurant dans la déclaration de syntaxe formelle. Cette directive peut également être spécifiée dans l’une des sections suivantes définies par l’auteur de l’INF :
- Une section add-interface-section référencée par la directive AddInterface dans une section DDInstall.Interfaces.
- Une section install-interface référencée dans une section InterfaceInstall32.
Chaque section nommée référencée par une directive DelFiles comporte une ou plusieurs entrées de la forme suivante :
[file-list-section]
destination-file-name[,,,flag]
...
Une file-list-section peut comporter un nombre quelconque d’entrées, chacune sur une ligne distincte.
Entries
destination-file-name
Spécifie le nom du fichier à supprimer de la destination.
Ne spécifiez pas un fichier qui figure dans une directive CopyFiles. Si un fichier est listé à la fois dans une section référencée par CopyFiles et dans une section référencée par DelFiles, et que le fichier est actuellement présent sur le système avec une signature valide, le système d’exploitation pourrait optimiser l’opération de copie mais exécuter l’opération de suppression. Cela est très probablement pas ce que l’auteur de l’INF voulait.
Remarque
Vous ne pouvez pas utiliser un jeton %strkey% pour spécifier l’entrée destination-file-name. Pour plus d’informations sur les jetons %strkey%, veuillez consulter la section INF Strings.
flag
Cette valeur facultative peut être l’une des suivantes, exprimée en notation hexadécimale comme indiqué ici ou en tant que valeur décimale :
0x00000001 (DELFLG_IN_USE)
Supprimez le fichier nommé, éventuellement après son utilisation pendant le processus d’installation.
Définir cette valeur d’indicateur dans un INF met en file d’attente l’opération de suppression du fichier jusqu’à ce que le système redémarre si le fichier donné ne peut pas être supprimé parce qu’il est utilisé pendant que cet INF est traité. Sinon, un tel fichier ne sera pas supprimé.
0x00010000 (DELFLG_IN_USE1) (Windows 2000 ou versions ultérieures de Windows)
Cet indicateur est une version sur le mot de poids fort de l’indicateur DELFLG_IN_USE, et il a le même but et le même effet. Cet indicateur ne doit être utilisé que pour les installations sur des systèmes basés sur NT.
Définir cette valeur d’indicateur dans un INF évite les conflits avec l’indicateur COPYFLG_WARN_IF_SKIP dans un INF contenant à la fois des directives DelFiles et CopyFiles qui référencent la même file-list-section.
Notes
Important
Cette directive doit être utilisée avec précaution. Nous vous recommandons vivement de ne pas utiliser la directive DelFiles dans le fichier INF d’un pilote de fonction Plug and Play (PnP).
Tout nom de file-list-section doit être unique pour le fichier INF, mais il peut être référencé par des directives CopyFiles, DelFiles, ou RenFiles ailleurs dans le même INF. Un tel nom de section défini par l’auteur de l’INF doit suivre les règles générales de définition des noms de section. Pour plus d'informations sur ces règles, voir Règles générales de syntaxe pour les fichiers INF.
La directive DelFiles ne prend pas en charge la décoration d’un nom de file-list-section avec une extension de plateforme définie par le système (.nt, .ntx86, .ntia64, .ntamd64, .ntarm, ou .ntarm64).
La section DestinationDirs du fichier INF contrôle la destination de toutes les opérations de suppression de fichiers, quelle que soit la section contenant une directive DelFiles particulière. Si une section nommée référencée par une directive DelFiles a une entrée correspondante dans la section DestinationDirs du même INF, cette entrée spécifie explicitement le répertoire cible de destination à partir duquel tous les fichiers listés dans la section nommée seront supprimés. Si la section nommée ne figure pas dans la section DestinationDirs, Windows utilise l’entrée DefaultDestDir dans l’INF.
Exemples
Cet exemple montre comment la section DestinationDirs spécifie le chemin d’une opération de suppression de fichier qui se produit lors du traitement d’un INF de pilote de périphérique simple.
[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
; ...