Directiva DelFiles de INF
Precaución
Si va a crear un paquete de controladores universal o de Windows, esta directiva no es válida. Consulte Uso de un archivo INF universal e Introducción al desarrollo de controladores de Windows.
Una directiva DelFiles hace referencia a una sección INF-writer-defined en otra parte del archivo INF y hace que la lista de archivos se elimine en el contexto de las operaciones de la sección en la que se especifica la directiva DelFiles de referencia.
[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]...
Se puede especificar una directiva DelFiles en cualquiera de las secciones que se muestran en la instrucción de sintaxis formal anterior. Esta directiva también se puede especificar en cualquiera de las siguientes secciones INF-writer-defined:
- Una add-interface-section a la que hace referencia la directiva AddInterface en una sección DDInstall.Interfaces.
- Una install-interface-section a la que se hace referencia en una sección InterfaceInstall32.
Cada sección con nombre a la que hace referencia una directiva DelFiles tiene una o varias entradas con el formato siguiente:
[file-list-section]
destination-file-name[,,,flag]
...
Una file-list-section puede tener cualquier número de entradas, cada una en una línea independiente.
Entries
destination-file-name
Especifica el nombre del archivo que se va a eliminar del destino.
No especifique un archivo que aparezca en una directiva CopyFiles. Si un archivo aparece en una sección CopyFiles y DelFiles a las que se hace referencia, y el archivo está presente actualmente en el sistema con una firma válida, el sistema operativo podría optimizar la operación de copia, pero podría realizar la operación de eliminación. Es muy probable que esto no sea lo que pretendía el escritor de INF.
Nota:
No se puede usar un token %strkey% para especificar la entrada de destination-file-name. Para obtener más información sobre %strkey% tokens, consulte la Sección Strings de INF.
flag
Este valor opcional puede ser uno de los siguientes, expresado en notación hexadecimal, como se muestra aquí o como un valor decimal:
0x00000001 (DELFLG_IN_USE)
Elimina el archivo con nombre, posiblemente después de usarlo durante el proceso de instalación.
Al establecer este valor en un INF, se pone en cola la operación de eliminación del archivo hasta que se reinicie el sistema si el archivo en cuestión no se puede eliminar porque está en uso mientras se está procesando el INF. De lo contrario, este archivo no se eliminará.
0x00010000 (DELFLG_IN_USE1) (Windows 2000 o versiones posteriores de Windows)
Esta marca es una versión de palabra de orden superior de la marca DELFLG_IN_USE, y tiene el mismo propósito y efecto. Esta marca solo debe usarse en para instalaciones en sistemas basados en NT.
Establecer este valor de marca en un INF impide conflictos con la marca de COPYFLG_WARN_IF_SKIP en un INF con directivas DelFiles y CopyFiles que hacen referencia a la misma file-list-section.
Comentarios
Importante
Esta directiva debe usarse cuidadosamente. Se recomienda encarecidamente no usar la directiva DelFiles en el archivo INF para un controlador de función Plug and Play (PnP).
Cualquier nombre de file-list-section debe ser único para el archivo INF, pero se puede hacer referencia a él mediante las directivas CopyFiles, DelFiles o RenFiles en otra parte del mismo INF. Este tipo de nombre de sección INF-writer-defined debe seguir las reglas generales para definir nombres de sección. Para obtener más información sobre estas reglas, consulte Reglas generales de sintaxis para archivos INF.
La directiva DelFiles no admite la representación de un nombre de file-list-section con una extensión de plataforma definida por el sistema (.nt, .ntx86, .ntia64, .ntamd64, .ntarm o .ntarm64).
La sección DestinationDirs del archivo INF controla el destino de todas las operaciones de eliminación de archivos, independientemente de la sección que contenga una directiva determinada DelFiles. Si una sección con nombre a la que hace referencia una directiva DelFiles tiene una entrada correspondiente en la sección DestinationDirs del mismo INF, esa entrada especifica explícitamente el directorio de destino desde el que se eliminarán todos los archivos que aparecen en la sección con nombre. Si la sección con nombre no aparece en la sección DestinationDirs, Windows usa la entrada DefaultDestDir del INF.
Ejemplos
En este ejemplo se muestra cómo la sección DestinationDirs especifica la ruta de acceso de una operación de eliminación de archivos que se produce en el procesamiento de un INF de controlador de dispositivo 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
; ...