Directiva UpdateInis de INF
Precaución
A partir de Windows 11 versión 22H2, un paquete de controladores que usa esta directiva ya no es apto para una firma del Centro para desarrolladores de hardware.
Los paquetes de controladores universales y los controladores de Windows no pueden usar esta directiva.
Una directiva UpdateInis hace referencia a una o varias secciones con nombre, especificando un archivo INI desde el que se leerá una sección o línea determinada y se aplicará a un archivo INI existente con el mismo nombre en el equipo de destino. Opcionalmente, las modificaciones de línea a línea de y a dichos archivos INI se pueden especificar en update-ini-section.
[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)
UpdateInis=update-ini-section[,update-ini-section]...
Esta directiva casi nunca se especifica en archivos INF para la instalación en Windows, debido a la falta de necesidad de archivos INI. Sin embargo, la directiva UpdateInis es válida en cualquiera de las secciones que se muestran en la instrucción de sintaxis formal, así como en las secciones INF-writer-defined a las que hace referencia una directiva AddInterface o a las que se hace referencia en una sección InterfaceInstall32.
Cada sección con nombre a la que hace referencia una directiva UpdateInis tiene el siguiente formato:
[update-ini-section]
ini-file,ini-section[,old-ini-entry][,new-ini-entry][,flags]
...
Una update-ini-section puede tener cualquier número determinado de entradas INF-writer-determined, cada una en una línea independiente.
Entries
ini-file
Especifica el nombre de un archivo INI proporcionado en el medio de origen e, implícitamente, el del archivo INI que se va a actualizar en el equipo de destino. Este valor se puede expresar como un filename o como un token %strkey% que se define en una sección Strings del archivo INF.
ini-section
Especifica el nombre de la sección dentro del archivo INI especificado. Si se especifican los dos valores siguientes, esta sección contiene una entrada que se va a cambiar. Si se omite una old-ini-entry, pero se proporciona una new-ini-entry, la nueva entrada se agregará a medida que se lea esta sección.
old-ini-entry
Este valor opcional especifica el nombre de una entrada en la ini-section especificada, normalmente expresada con el siguiente formato:
"key=value"
Tanto la clave como el valor se pueden expresar como tokens %strkey% definidos en una sección Strings del archivo INF. El asterisco (*) se puede especificar como comodín para la clave o el valor.
new-ini-entry
Este valor opcional especifica un cambio en una old-ini-entry o la adición de una nueva entrada. Este valor se puede expresar de la misma manera que old-ini-entry.
flags
Este valor opcional controla la interpretación de las old-ini-entry o new-ini-entry indicadas. La entrada flags puede ser uno de los siguientes valores numéricos:
Valor | Significado |
---|---|
0 | Este es el valor predeterminado de la entrada flags si se omite. Si la clave old-ini-entry indicada está presente en los archivos INI, reemplace key=value por la new-ini-entry indicada. Solo las claves de los archivos INI deben coincidir. Se omite el valor correspondiente de cada clave de este tipo. Para agregar una new-ini-entry al archivo INI de destino incondicionalmente, omita el valor de old-ini-entry de la entrada de la sección update-ini del INF. Para eliminar una old-ini-entry del archivo INI de destino incondicionalmente, omita el valor de new-ini-entry. |
1 | Si la old-ini-entry (key=value) existe en los archivos INI, reemplácela en el archivo INI de destino que tiene la new-ini-entry indicada. Tanto la clave como el valor de la old-ini-entry especificada deben coincidir con los de los archivos INI para que se realice dicho reemplazo, no solo sus claves como para el valor de flags anterior. |
2 | Si no se encuentra la clave especificada para old-ini-entry en el archivo INI de destino, no haga nada. De lo contrario, los cambios realizados dependen de las coincidencias que se encuentran en los archivos INI para las claves especificadas de old-ini-entry y new-ini-entry, como se indica a continuación: (1) Si la clave de old-ini-entry existe en los archivos INI, pero también la clave de new-ini-entry, reemplace old-ini-entry por new-ini-entry en el archivo INI de destino y, a continuación, quite la new-ini-entry superflua de ese archivo INI. (2) Si la clave de old-ini-entry existe en los archivos INI, pero la clave de new-ini-entry no, reemplace la key de old-ini-entry por la de new-ini-entry en el archivo INI de destino, pero deje el valor de old-ini-entry sin cambios. |
3 | Si no se encuentra la clave ni el valor especificados para old-ini-entry, no haga nada. De lo contrario, los cambios realizados dependen de las coincidencias que se encuentran en los archivos INI para las claves y valores especificados de old-ini-entry y new-ini-entry, como se indica a continuación: (1) Si key=value de old-ini-entry existe en los archivos INI, pero también key=value de new-ini-entry, reemplace old-ini-entry por new-ini-entry en el archivo INI de destino y, a continuación, quite la new-ini-entry superflua de ese archivo INI. (2) Si key=value de old-ini-entry existe en los archivos INI, pero new-ini-entry no, reemplace old-ini-entry por new-ini-entry en el archivo INI de destino, pero deje el valor de old-ini-entry sin cambios. |
Comentarios
Cada nombre de update-ini-section indicado debe ser único dentro del archivo INF y 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.
El INF proporciona la ruta de acceso completa del ini-file especificado en el medio de distribución de una de las maneras siguientes:
En los archivos INF proporcionados por IHV/OEM, mediante SourceDisksNames y, posiblemente, las secciones SourceDisksFiles de este INF especifican explícitamente la ruta de acceso completa de cada archivo de origen con nombre que no está en el directorio o directorios raíz en el medio de distribución.
En los archivos INF proporcionados por el sistema, proporcionando uno o varios archivos INF adicionales, identificados en la entrada LayoutFile de la sección Version del archivo INF.
Cualquier filename especificado dentro de una old-ini-entry o new-ini-entry debe designar el directorio de destino que contiene ese archivo. Dicha ruta de acceso al directorio de destino de un filename en una entrada de update-ini-section debe especificarse como dirid. Para obtener listas de posibles valores dirid, consulte Uso de Dirids.