Compartilhar via


Diretiva INF AddSoftware

Cada diretiva AddSoftware descreve a instalação de software autônomo. Essa diretiva deve ser usada em um arquivo INF da classe de instalação SoftwareComponent . Para obter mais detalhes sobre componentes de software, consulte Usando um arquivo INF de componente. Essa diretiva tem suporte para Windows 10 versão 1703 e posterior.

Os tipos de instalação válidos dependem da plataforma de destino. Por exemplo, a área de trabalho dá suporte a instaladores MSI e exes de instalação.

Observação

O tipo 2 tem suporte em Drivers Universais, o Tipo 1 é somente para área de trabalho.

Quando um arquivo INF de componente de software especifica AddSoftware, o sistema enfileira o software a ser instalado após a instalação do dispositivo. Não há garantia de quando ou se o software será instalado. Se o software referenciado não for instalado, o sistema tentará novamente quando o componente de software de referência for atualizado.

Uma diretiva AddSoftware é usada em um INF DDInstall. Seção de software.

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

Entradas

SoftwareName
Especifica o nome do software a ser instalado. Esse nome deve ser exclusivo em todo o sistema, independentemente do inf ou do nome da seção. O processamento de uma diretiva AddSoftware verifica a versão em relação ao software anterior instalado com o mesmo nome por uma diretiva AddSoftware de qualquer pacote de driver. É recomendável pré-fabricado o SoftwareName com o nome do fornecedor, por exemplo ContosoControlPanel.

sinalizadores
Especifica um ou mais sinalizadores (ORed).

0x00000000
A diretiva AddSoftware é processada apenas uma vez.

0x00000001
A diretiva AddSoftware é processada uma vez para cada dispositivo de componente que especifica AddSoftware com o mesmo SoftwareName exclusivo.

Por exemplo, considere uma configuração na qual três dispositivos são instalados usando o mesmo arquivo INF. O processo de instalação de software é executado apenas uma vez para sinalizadores 0x00000000 mas três vezes para sinalizadores 0x00000001.

software-install-section
Faz referência a uma seção definida pelo gravador INF que contém informações para instalar o software.

Comentários

Cada nome de seção criado pelo inf-writer deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para obter mais informações sobre essas regras, consulte Regras de sintaxe geral para arquivos INF.

Uma diretiva AddSoftware deve referenciar uma seção de instalação de software nomeada em outro lugar no arquivo INF. Cada seção desse tipo tem o seguinte formato:

[software-install-section]

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

Observação

Consulte SoftwareType para obter informações sobre restrições em entradas e valores de seção.

Qualquer software instalado usando o AddSoftware deve ser instalado silenciosamente (ou silenciosamente). Em outras palavras, nenhuma interface do usuário pode ser mostrada ao usuário durante a instalação.

Qualquer software instalado usando AddSoftwarenão será desinstalado se o dispositivo de componente de software virtual ou seus dispositivos pai estiverem desinstalados. Se o software não for um aplicativo UWP (ou seja, você está usando AddSoftware com um SoftwareType de 1), verifique se os usuários podem desinstalá-lo facilmente sem deixar um rastreamento no registro. Para fazer isso:

  • Se você estiver usando um instalador MSI, configure uma entrada Adicionar/Remover Programas no pacote do Windows Installer do aplicativo.

  • Se você estiver usando um EXE personalizado que instala o estado global do registro/arquivo (em vez de complementar as configurações do dispositivo local), use a Chave do Registro de Desinstalação.

Entradas e valores de seção de instalação de software

SoftwareType={type-code}
SoftwareType especifica o tipo de instalação de software e é uma entrada necessária.

Um valor de 1 indica que o software associado é um binário MSI ou EXE. Quando esse valor é definido, a entrada SoftwareBinary também é necessária. Não há suporte para um valor de 1 no Windows 10 S.

Se SoftwareType for definido como 1, SoftwareBinary e SoftwareVersion também serão necessários, mas SoftwareArguments e sinalizadores (na diretiva AddSoftware ) serão opcionais.

A partir Windows 10 versão 1709, um valor 2 indica que o software associado é um link da Microsoft Store. Use um valor de 1 somente para software específico do dispositivo que não tenha interface gráfica do usuário. Se você tiver um aplicativo específico do dispositivo com elementos gráficos, ele deverá vir da Microsoft Store e o driver deverá referenciá-lo usando um valor SoftwareType de 2.

Se SoftwareType for definido como 2, SoftwareID será necessário e sinalizadores (na diretiva AddSoftware ) serão opcionais. Se SoftwareType for definido como 2, SoftwareBinary e SoftwareVersion não serão usados.

Observação

Ao usar SoftwareType 2 da diretiva AddSoftware, não é necessário utilizar um INF de componente. A diretiva pode ser usada em qualquer INF com êxito. Uma diretiva AddSoftware do Tipo 1, no entanto, deve ser usada de um INF de componente.

Não use AddSoftware para distribuir software não relacionado a um dispositivo. Por exemplo, um programa de utilitário de COMPUTADOR específico do OEM não deve ser instalado com o AddSoftware. Em vez disso, use uma das seguintes opções para pré-instalar um aplicativo em uma imagem OEM de Windows 10:

Para obter informações sobre como emparelhar um driver com um aplicativo UWP (Plataforma Universal do Windows), consulte Emparelhamento de um driver com um aplicativo de Plataforma Universal do Windows (UWP) e HSA (Aplicativo de Suporte de Hardware): Etapas para desenvolvedores de driver.

SoftwareBinary={filename}
Especifica o caminho para o executável. O sistema gera linhas de comando como as seguintes:

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

EXE: <SoftwareBinary> [<SoftwareArguments>]

Se você usar essa entrada, deverá adicionar o executável ao DriverStore especificando a Diretiva CopyFiles do INF com um valor DestinationDirs de 13.

Observação

Consulte SoftwareType para obter informações sobre restrições em entradas e valores de SoftwareBinary .

SoftwareArguments={argument1[, argument2[, ... argumentN]]}
Especifica argumentos específicos da extensão a serem acrescentados à linha de comando. Você pode especificar argumentos de linha de comando que o sistema simplesmente passa para a linha de comando gerada. Você também pode especificar cadeias de caracteres especiais chamadas variáveis de contexto de runtime. Quando você especifica uma variável de contexto de runtime, o sistema a converte em um valor específico do dispositivo antes de acrescentá-la à linha de comando gerada. Você pode misturar e combinar argumentos de cadeia de caracteres literais com variáveis de contexto de runtime. As variáveis de contexto de runtime com suporte são:

<<DeviceInstanceID>>

O sistema substitui a cadeia de caracteres acima pela ID da instância do dispositivo do componente de software.

Por exemplo:

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

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

O exemplo acima resulta em uma linha de comando como esta:

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

Se SoftwareArguments contiver vários argumentos:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

Os resultados acima resultam em:

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

Observação

Consulte SoftwareType para obter informações sobre restrições em entradas e valores de SoftwareArguments .

SoftwareVersion={w.x.y.z}
Especifica a versão do software. Cada valor não deve exceder 65535. Quando o sistema encontra um SoftwareName duplicado, ele verifica o SoftwareVersion em relação ao SoftwareVersion anterior. Se for maior, o Windows executará o software.

Observação

Consulte SoftwareType para obter informações sobre restrições em entradas e valores de SoftwareVersion .

SoftwareID={x.y.z}
Especifica um identificador e um tipo de identificador da Microsoft Store. Atualmente, há suporte apenas para PFN (Nome da Família de Pacotes). Use um PFN para fazer referência a um aplicativo UWP (Plataforma Universal do Windows) usando o formulário pfn://<x.y.z>.

Observação

Consulte SoftwareType para obter informações sobre restrições em entradas e valores de SoftwareID .

Consulte Também

Usando um arquivo INF de componente

Seção INF DDInstall.Software

Diretiva AddComponent do INF

Emparelhando um driver com um aplicativo de Plataforma Universal do Windows (UWP)

HSA (aplicativo de suporte de hardware): etapas para desenvolvedores de driver