Condividi tramite


Direttiva INF AddSoftware

Ogni direttiva AddSoftware descrive l'installazione di software autonomo. Questa direttiva deve essere usata in un file INF della classe di installazione SoftwareComponent . Per altre informazioni sui componenti software, vedere Uso di un file INF componente. Questa direttiva è supportata per Windows 10 versione 1703 e successiva.

I tipi di installazione validi dipendono dalla piattaforma di destinazione. Desktop, ad esempio, supporta i programmi di installazione msi e l'installazione di EXEs.

Nota

Il tipo 2 è supportato nei driver universali, il tipo 1 è solo desktop.

Quando un file INF del componente software specifica AddSoftware, il software code di sistema da installare dopo l'installazione del dispositivo. Non vi è alcuna garanzia quando o se il software verrà installato. Se il software a cui si fa riferimento non riesce a installare, il sistema prova di nuovo quando viene aggiornato il componente software di riferimento.

Una direttiva AddSoftware viene usata all'interno di un inF DDInstall. Sezione Software .

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

Voci

SoftwareName
Specifica il nome del software da installare. Questo nome deve essere univoco a livello di sistema, indipendentemente dal nome di sezione o INF. L'elaborazione di una direttiva AddSoftware controlla la versione rispetto al software precedente installato con lo stesso nome da una direttiva AddSoftware da qualsiasi pacchetto driver. È consigliabile eseguire la prefazione di SoftwareName con il nome del fornitore, ad esempio ContosoControlPanel.

flags
Specifica uno o più flag (ORed).

0x00000000
La direttiva AddSoftware viene elaborata una sola volta.

0x00000001
La direttiva AddSoftware viene elaborata una volta per ogni dispositivo componente che specifica AddSoftware con lo stesso SoftwareName univoco.

Si consideri ad esempio una configurazione in cui vengono installati tre dispositivi usando lo stesso file INF. Il processo di installazione software viene eseguito una sola volta per i flag 0x00000000 ma tre volte per i flag 0x00000001.

software-install-section
Fa riferimento a una sezione definita dal writer INF che contiene informazioni per l'installazione del software.

Commenti

Ogni nome di sezione creato da INF-writer deve essere univoco all'interno del file INF e deve seguire le regole generali per definire i nomi di sezione. Per altre informazioni su queste regole, vedere Regole di sintassi generali per i file INF.

Una direttiva AddSoftware deve fare riferimento a una sezione software-install-section denominata altrove nel file INF. Ogni sezione di questo tipo ha il formato seguente:

[software-install-section]

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

Nota

Per informazioni sui vincoli sulle voci e i valori della sezione, vedere SoftwareType .

Qualsiasi software installato con AddSoftware deve essere installato in modo invisibile all'utente (o in modo silenzioso). In altre parole, nessuna interfaccia utente può essere visualizzata all'utente durante l'installazione.

Qualsiasi software installato con AddSoftwarenon verrà disinstallato se il dispositivo del componente software virtuale o i relativi dispositivi padre vengono disinstallati. Se il software non è un'app UWP (ad esempio, si usa AddSoftware con un SoftwareType di 1), assicurarsi che gli utenti possano disinstallarlo facilmente senza lasciare una traccia nel Registro di sistema. A tale scopo, procedere nel seguente modo:

  • Se si usa un programma di installazione msi, configurare una voce Aggiungi/Rimuovi programmi nel pacchetto Windows Installer dell'applicazione.

  • Se si usa un exe personalizzato che installa lo stato globale del Registro di sistema/file (anziché integrare le impostazioni del dispositivo locale), usare la chiave del Registro di sistema di disinstallazione.

Voci e valori della sezione installazione software

SoftwareType={type-code}
SoftwareType specifica il tipo di installazione software ed è una voce necessaria.

Un valore 1 indica che il software associato è un file binario MSI o EXE. Quando questo valore è impostato, è necessaria anche la voce SoftwareBinary . Il valore 1 non è supportato in Windows 10 S.

Se SoftwareType è impostato su 1, è necessario anche SoftwareBinary e SoftwareVersion, ma SoftwareArguments e flag (nella direttiva AddSoftware) sono facoltativi.

A partire da Windows 10 versione 1709, un valore pari a 2 indica che il software associato è un collegamento a Microsoft Store. Usare un valore di 1 solo per il software specifico del dispositivo senza interfaccia utente grafica. Se si dispone di un'app specifica del dispositivo con elementi grafici, deve venire da Microsoft Store e il driver deve farvi riferimento usando un valore SoftwareType pari a 2.

Se SoftwareType è impostato su 2, SoftwareID è obbligatorio e i flag (nella direttiva AddSoftware) sono facoltativi. Se SoftwareType è impostato su 2, SoftwareBinary e SoftwareVersion non vengono usati.

Nota

Quando si usa SoftwareType 2 della direttiva AddSoftware, non è necessario usare un COMPONENTE INF. La direttiva può essere usata in qualsiasi INF correttamente. Una direttiva AddSoftware di Tipo 1, tuttavia, deve essere usata da un componente INF.

Non usare AddSoftware per distribuire software non correlato a un dispositivo. Ad esempio, un programma di utilità PC specifico dell'OEM non deve essere installato con AddSoftware. Usare invece una delle opzioni seguenti per preinstallare un'app in un'immagine OEM di Windows 10:

Per informazioni sull'associazione di un driver a un'app piattaforma UWP (Universal Windows Platform) (UWP), vedere Associazione di un driver con un'app piattaforma UWP (Universal Windows Platform) (UWP) e app di supporto hardware (HSA): passaggi per sviluppatori driver.

SoftwareBinary={nomefile}
Specifica il percorso dell'eseguibile. Il sistema genera righe di comando come le seguenti:

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

EXE: <SoftwareBinary> [<SoftwareArguments>]

Se si usa questa voce, è necessario aggiungere il file eseguibile all'archivio driver specificando la direttiva COPYFiles INF con un valore DestinationDirs pari a 13.

Nota

Per informazioni sui vincoli relativi alle voci e ai valori softwareBinary, vedere SoftwareType.

SoftwareArguments={argument1[, argument2[, ... argumentN]]}
Specifica gli argomenti specifici dell'estensione da aggiungere alla riga di comando. È possibile specificare gli argomenti della riga di comando che il sistema passa semplicemente attraverso la riga di comando generata. È anche possibile specificare stringhe speciali denominate variabili di contesto di runtime. Quando si specifica una variabile di contesto di runtime, il sistema lo converte in un valore specifico del dispositivo prima di aggiungerlo alla riga di comando generata. È possibile combinare e associare gli argomenti delle stringhe letterali alle variabili di contesto di runtime. Le variabili di contesto di runtime supportate sono:

<<DeviceInstanceID>>

Il sistema sostituisce la stringa precedente con l'ID istanza del dispositivo del componente software.

Ad esempio:

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

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

Nell'esempio precedente viene restituita una riga di comando simile al seguente:

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

Se SoftwareArguments contiene più argomenti:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

I risultati precedenti sono:

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

Nota

Per informazioni sui vincoli relativi alle voci e ai valori di SoftwareArguments, vedere SoftwareType.

SoftwareVersion={w.x.y.z}
Specifica la versione del software. Ogni valore non deve superare il 65535. Quando il sistema rileva un softwareName duplicato, controlla SoftwareVersion rispetto al softwareVersion precedente. Se è maggiore, Windows esegue il software.

Nota

Per informazioni sui vincoli relativi alle voci e ai valori di SoftwareVersion, vedere SoftwareType.

SoftwareID={x.y.z}
Specifica un identificatore e un tipo di identificatore di Microsoft Store. Attualmente è supportato solo nome famiglia di pacchetti (PFN). Usare un pfN per fare riferimento a un'app UWP (piattaforma UWP (Universal Windows Platform)) usando il modulo pfn://<x.y.z>.

Nota

Per informazioni sui vincoli relativi alle voci e ai valori SoftwareID, vedere SoftwareType.

Vedere anche

Uso di un file INF componente

Sezione INF DDInstall.Software

Direttiva INF AddComponent

Associazione di un driver a un'app UWP (piattaforma UWP (Universal Windows Platform))

App di supporto hardware (HSA): passaggi per gli sviluppatori di driver