Funzione InstallHinfSectionA (setupapi.h)
[Questa funzione è disponibile per l'uso nei sistemi operativi indicati nella sezione Requisiti. È possibile che in versioni successive sia stata modificata o non sia più disponibile. SetupAPI non deve più essere usato per l'installazione di applicazioni. Usare invece Windows Installer per lo sviluppo di programmi di installazione di applicazioni. SetupAPI continua a essere usato per l'installazione dei driver di dispositivo.
InstallHinfSection è una funzione punto di ingresso esportata da Setupapi.dll che è possibile usare per eseguire una sezione di un file con estensione inf. InstallHinfSection può essere richiamato chiamando l'utilità Rundll32.exe come descritto nella sezione Osservazioni.
Il prototipo per la funzione InstallHinfSection segue la forma di tutte le funzioni di punto di ingresso usate con Rundll32.exe.
Se un file viene copiato o modificato, è necessario che il chiamante di questa funzione disponga dei privilegi per scrivere nella directory di destinazione. Se sono presenti servizi installati, è necessario che il chiamante di questa funzione disponga dell'accesso a Service Control Manager.
Sintassi
void InstallHinfSectionA(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCSTR CommandLine,
[in] INT ShowCommand
);
Parametri
[in] Window
Handle della finestra padre. In genere hwnd è Null.
[in] ModuleHandle
Riservato e deve essere Null.
[in] CommandLine
Puntatore al buffer contenente la riga di comando. È consigliabile usare una stringa con terminazione Null.
[in] ShowCommand
Riservato e deve essere zero.
Valore restituito
nessuno
Osservazioni
Si noti che esistono tre esportazioni: InstallHinfSection (per RunDll32), InstallHinfSectionA e InstallHinfSectionW.
Per eseguire una sezione Installa di un file con estensione inf specificato, è possibile richiamare InstallHinfSection con il Rundll32.exe usando la sintassi seguente.
percorso> della<>sezione<>RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection<
Questo passa il percorso> "<<modalità sezione>" aCmdLineBuffer.<>
In alternativa, il programma può chiamare direttamente InstallHinfSection, InstallHinfSectionA o InstallHinfSectionW, impostando il parametro CmdLineBuffer sul seguente.
"<section> <mode> <path>"
Dove percorso è il percorso completo del file con estensione inf, la modalità è il parametro modalità di riavvio e la sezione è qualsiasi sezione Install nel file inf. È necessario il separatore di virgole tra SETUPAPI.DLL e InstallHinfSection nella riga di comando. Si noti che non è possibile inserire spazi vuoti nella riga di comando tra la virgola e SETUPAPI.DLL o InstallHinfSection.
È consigliabile specificare il percorso completo del file inf come percorso.
È possibile specificare qualsiasi sezione Install nel file inf come sezione. Non sono consentiti spazi.
È consigliabile usare una combinazione dei valori seguenti per la modalità. È necessario includere 128 per impostare il percorso predefinito dell'installazione sul percorso dell'INF, in caso contrario viene assunto un INF fornito dal sistema. Aggiungere valori per specificare il riavvio. Si noti che solo i valori 128 o 132 sono consigliati, altri valori possono causare il riavvio del computer inutilmente o meno quando necessario.
Valore | Descrizione |
---|---|
0 | Sistema fornito INF. |
128 | Impostare il percorso predefinito dell'installazione sul percorso di INF. Questa è l'impostazione tipica. |
+0 | Non riavviare mai il computer. |
+1 | Riavviare il computer in tutti i casi. |
+2 | Chiedere sempre agli utenti se vogliono riavviare. |
+3 | Riavviare il computer se necessario senza chiedere l'autorizzazione all'utente. |
+4 | Se è necessario un riavvio del computer, chiedere all'utente l'autorizzazione prima del riavvio. |
Ad esempio, la riga di comando seguente esegue la sezione DefaultInstall del file Shell.inf. Se il programma di installazione determina che è necessario un riavvio, l'utente verrà richiesto con una finestra di dialogo "Riavviare il computer, Sì/No".
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL. INF
Nota
L'intestazione setupapi.h definisce InstallHinfSection come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Attenzione
Quando viene usata in un'architettura diversa da x86 o amd64 o quando usata in un sistema in modalità S, InstallHInfSection richiede che il file INF disponga di una sezione INF Version con una direttiva CatalogFile che punta a un file di catalogo firmato contenente l'hash del file INF e i file a cui fa riferimento il file INF tramite una sezione INF SourceDisksFiles.
Attenzione
Quando viene usata in un sistema la cui architettura nativa non è x86 né amd64, InstallHInfSection deve essere usata da un processo di architettura nativa. InstallHInfSection blocca molti tipi di operazioni di modifica dello stato del sistema quando viene usato da un processo di architettura non nativo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | setupapi.h |
Libreria | Setupapi.lib |
DLL | Setupapi.dll |