Funzione InstallHinfSectionW (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 delle applicazioni. SetupAPI continua a essere usato per l'installazione dei driver di dispositivo.
InstallHinfSection è una funzione del punto di ingresso esportata da Setupapi.dll che è possibile usare per eseguire una sezione di un file 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 del 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 abbia accesso a Service Control Manager.
Sintassi
void InstallHinfSectionW(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCWSTR 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 Install 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<
In questo modo viene passato il "percorso> della modalità<>sezione<>" a CmdLineBuffer.<
In alternativa, il programma può chiamare direttamente InstallHinfSection, InstallHinfSectionA o InstallHinfSectionW , impostando il parametro CmdLineBuffer su quanto segue.
"<section> <mode> <path>"
Dove path è il percorso completo del file inf, mode è il parametro della 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 possono essere presenti 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.
Per la modalità è consigliabile usare una combinazione dei valori seguenti. È necessario includere 128 per impostare il percorso predefinito dell'installazione sul percorso dell'INF. In caso contrario, si presuppone un INF fornito dal sistema. Aggiungere valori per specificare il riavvio. Si noti che sono consigliati solo i valori 128 o 132, altri valori possono causare il riavvio del computer inutilmente o meno quando necessario.
Valore | Descrizione |
---|---|
0 | InF fornito dal sistema. |
128 | Impostare il percorso predefinito dell'installazione sul percorso dell'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 all'utente l'autorizzazione. |
+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, all'utente verrà richiesto un messaggio di dialogo "Riavvia 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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Attenzione
Se usato in un'architettura diversa da x86 o amd64 o se usato in un sistema in modalità S, InstallHInfSection richiede che il file INF abbia una sezione INF Version con una direttiva CatalogFile che punta a un file di catalogo firmato che contiene l'hash del file INF e tutti i file a cui fa riferimento il file INF tramite una sezione INF SourceDisksFiles.
Attenzione
Se usato in un sistema la cui architettura nativa non è x86 né amd64, è consigliabile usare InstallHInfSection da un processo di architettura nativa. InstallHInfSection blocca molti tipi di operazioni di modifica dello stato del sistema quando vengono usate da un processo di architettura non nativa.
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 |