Compartir a través de


Directiva AddSoftware 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 configura EXE.

Nota

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

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

Una directiva AddSoftware se usa 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 precedir softwareName con el nombre del proveedor, por ejemplo 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 marcas 0x00000000 pero tres veces para marcas 0x00000001.

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

Comentarios

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 el siguiente formato:

[software-install-section]

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

Nota

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 de Windows Installer 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 instalació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 se establece 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 el software específico del dispositivo que no tenga ninguna interfaz gráfica de usuario. Si tienes una aplicación específica del dispositivo con elementos gráficos, debería provenir de 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 .

Nota

Cuando se usa SoftwareType 2 de la directiva AddSoftware, no es necesario utilizar un Componente INF. La directiva se puede usar en cualquier INF correctamente. Sin embargo, se debe usar una directiva AddSoftware de tipo 1 de un componente INF.

No use AddSoftware para distribuir software que no esté relacionado con un dispositivo. Por ejemplo, un programa de utilidad de PC específico de 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 ejecutable a DriverStore especificando la directiva INF CopyFiles con un valor DestinationDirs de 13.

Nota

Consulte SoftwareType para obtener información sobre las restricciones en las 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. Cuando se especifica una variable de contexto en tiempo de ejecución, el sistema la convierte en un valor específico del dispositivo antes de anexarlo a la línea de comandos generada. Puede mezclar y hacer coincidir argumentos de cadena literales 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

Nota

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 65535. Cuando el sistema encuentra un softwareName duplicado, comprueba SoftwareVersion con respecto a la versión anterior de SoftwareVersion. Si es mayor, Windows ejecuta el software.

Nota

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

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

Nota

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

Consulte también

Usar un archivo INF de componentes

Sección INF DDInstall.Software

Directiva AddComponent inf

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

Aplicación de soporte técnico de hardware (HSA): pasos para desarrolladores de controladores