Directiva AddSoftware de INF

Cada directiva AddSoftware describe la instalación de software independiente. Esta directiva debe usarse en un archivo INF de la clase de instalación SoftwareComponent . Para obtener más información sobre los componentes de software, consulte Uso de un archivo INF de componentes. Esta directiva es compatible con Windows 10 versión 1703 y posteriores.

Los tipos de instalación válidos dependen de la plataforma de destino. Por ejemplo, Desktop admite instaladores MSI y programa de instalación de EXE.

Note

El tipo 2 se admite en controladores universales; el tipo 1 es solo de escritorio.

Cuando un archivo INF de componente de software especifica AddSoftware, el software de colas del sistema que se va a instalar después de la instalación del dispositivo. No hay ninguna garantía cuando o si se instalará el software. Si no se puede instalar el software al que se hace referencia, el sistema vuelve a intentarlo cuando se actualiza el componente de software que hace referencia.

Se usa una directiva AddSoftware dentro de un DDInstall inf. Sección software.

[DDInstall.Software]
AddSoftware=SoftwareName,[flags],software-install-section

Entradas

SoftwareName
Especifica el nombre del software que se va a instalar. Este nombre debe ser único en todo el sistema, independientemente del nombre de la sección o INF. El procesamiento de una directiva AddSoftware comprueba la versión con el software anterior instalado con el mismo nombre por una directiva AddSoftware de cualquier paquete de controladores. Se recomienda prefacing the SoftwareName with the vendor name, for example ContosoControlPanel.

flags
Especifica una o varias marcas (ORed).

0x00000000
La directiva AddSoftware solo se procesa una vez.

0x00000001
La directiva AddSoftware se procesa una vez para cada dispositivo de componente que especifica AddSoftware con el mismo SoftwareName único.

Por ejemplo, considere una configuración en la que se instalan tres dispositivos con el mismo archivo INF. El proceso de instalación de software solo se ejecuta una vez para las marcas 0x00000000, pero tres veces para las marcas 0x00000001.

software-install-section
Hace referencia a una sección definida por INF-writer que contiene información para instalar software.

Remarks

Cada nombre de sección creado por INF-writer 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, vea Reglas de sintaxis general para archivos INF.

Una directiva AddSoftware debe hacer referencia a una sección denominada software-install-section en otra parte del archivo INF. Cada sección de este tipo tiene la siguiente forma:

[software-install-section]

SoftwareType=type-code
[SoftwareBinary=path-to-binary]
[SoftwareArguments=argument[, argument] …]
[SoftwareVersion=w.x.y.z]
[SoftwareID=pfn://x.y.z]

Note

Consulte SoftwareType para obtener información sobre las restricciones en las entradas y valores de sección.

Cualquier software instalado mediante AddSoftware debe instalarse de forma silenciosa (o silenciosa). Es decir, no se puede mostrar ninguna interfaz de usuario al usuario durante la instalación.

Cualquier software instalado mediante AddSoftwareno se desinstalará si se desinstala el dispositivo de componente de software virtual o sus dispositivos primarios. Si tu software no es una aplicación para UWP (es decir, estás usando AddSoftware con un SoftwareType de 1), asegúrate de que los usuarios puedan desinstalarlo fácilmente sin dejar un seguimiento en el registro. Para ello:

  • Si usa un instalador msi, configure una entrada Agregar o quitar programas en el paquete del instalador de Windows de la aplicación.

  • Si usa un EXE personalizado que instala el estado global del registro o archivo (en lugar de complementar la configuración del dispositivo local), use la clave del Registro de desinstalación.

Entradas y valores de sección de software

SoftwareType={type-code}
SoftwareType especifica el tipo de instalación de software y es una entrada necesaria.

Un valor de 1 indica que el software asociado es un archivo binario MSI o EXE. Cuando se establece este valor, también se requiere la entrada SoftwareBinary . No se admite un valor de 1 en Windows 10 S.

Si SoftwareType está establecido en 1, También se requieren SoftwareBinary y SoftwareVersion, pero SoftwareArguments y marcas (en la directiva AddSoftware) son opcionales.

A partir de Windows 10 versión 1709, un valor de 2 indica que el software asociado es un vínculo de Microsoft Store. Use un valor de 1 solo para software específico del dispositivo que no tenga ninguna interfaz gráfica de usuario. Si tiene una aplicación específica del dispositivo con elementos gráficos, debe proceder de la Microsoft Store y el controlador debe hacer referencia a ella con un valor SoftwareType de 2.

Si SoftwareType está establecido en 2, se requiere SoftwareID y las marcas (en la directiva AddSoftware) son opcionales. Si SoftwareType está establecido en 2, no se usan SoftwareBinary y SoftwareVersion .

Note

Al usar SoftwareType 2 de la directiva AddSoftware, no es necesario usar un COMPONENTE INF. La directiva se puede usar correctamente en cualquier INF. Sin embargo, se debe usar una directiva AddSoftware de tipo 1 desde un INF de componentes.

No use AddSoftware para distribuir software que no esté relacionado con un dispositivo. Por ejemplo, un programa de utilidad de PC específico del OEM no debe instalarse con AddSoftware. En su lugar, use una de las siguientes opciones para preinstalar una aplicación en una imagen oem de Windows 10:

Para obtener información sobre cómo emparejar un controlador con una aplicación de Plataforma universal de Windows (UWP), consulta Emparejar un controlador con una aplicación de Plataforma universal de Windows (UWP) y aplicación de soporte técnico de hardware (HSA): Pasos para desarrolladores de controladores.

SoftwareBinary={filename}
Especifica la ruta de acceso al archivo ejecutable. El sistema genera líneas de comandos como las siguientes:

MSI: msiexec /i "<SoftwareBinary>" ALLUSERS=1 /quiet /qn /promptrestart [<SoftwareArguments>]

EXE: <SoftwareBinary> [<SoftwareArguments>]

Si usa esta entrada, debe agregar el archivo ejecutable a DriverStore especificando la directiva INF CopyFiles con un valor DestinationDirs de 13.

Note

Consulte SoftwareType para obtener información sobre las restricciones en entradas y valores de SoftwareBinary .

SoftwareArguments={argument1[, argument2[, ... argumentN]]]}
Especifica argumentos específicos de la extensión que se van a anexar a la línea de comandos. Puede especificar argumentos de línea de comandos que el sistema simplemente pasa a través de la línea de comandos generada. También puede especificar cadenas especiales denominadas variables de contexto en tiempo de ejecución. Al especificar una variable de contexto en tiempo de ejecución, el sistema lo convierte en un valor específico del dispositivo antes de anexarlo a la línea de comandos generada. Puede combinar y hacer coincidir argumentos de cadena literal con variables de contexto en tiempo de ejecución. Las variables de contexto en tiempo de ejecución admitidas son:

<<DeviceInstanceID>>

El sistema reemplaza la cadena anterior por el identificador de instancia de dispositivo del componente de software.

Por ejemplo:

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

    [Contoso_ControlPanel_Software]
    SoftwareType=1
    SoftwareBinary=ContosoControlPanel.exe
    SoftwareArguments=<<DeviceInstanceID>>
    SoftwareVersion=1.0.0.0

El ejemplo anterior da como resultado una línea de comandos similar a la siguiente:

<DriverStorePath>\ContosoControlPanel.exe PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123

Si SoftwareArguments contiene varios argumentos:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

Lo anterior da como resultado:

<DriverStorePath>\ContosoControlPanel.exe arg1 PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123 arg2

Note

Consulte SoftwareType para obtener información sobre las restricciones en entradas y valores de SoftwareArguments .

SoftwareVersion={w.x.y.z}
Especifica la versión de software. Cada valor no debe superar los 65535. Cuando el sistema encuentra un SoftwareName duplicado, comprueba SoftwareVersion en la versión anterior de SoftwareVersion. Si es mayor, Windows ejecuta el software.

Note

Consulte SoftwareType para obtener información sobre las restricciones en las entradas y valores de SoftwareVersion .

SoftwareID={x.y.z}
Especifica un identificador de Microsoft Store y un tipo de identificador. Actualmente, solo se admite el nombre de familia de paquetes (PFN). Use un PFN para hacer referencia a una aplicación de Plataforma universal de Windows (UWP) mediante el formulario pfn://<x.y.z>.

Note

Consulte SoftwareType para obtener información sobre las restricciones en las entradas y valores de SoftwareID .

Véase también

Usar un archivo INF de componentes

Sección INF DDInstall.Software

Directiva AddComponent de INF

Emparejamiento de un controlador con una aplicación de Plataforma Universal de Windows (UWP)

Aplicación de soporte de hardware (HSA): Pasos para desarrolladores de drivers