Condividi tramite


Funzione InstallHinfSectionW (setupapi.h)

[Questa funzione è disponibile per l'uso nei sistemi operativi indicati nella sezione Requisiti. Potrebbe essere modificato o non disponibile nelle versioni successive. SetupAPI non deve più essere usata 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. è possibile richiamare InstallHinfSection 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, il chiamante di questa funzione deve disporre dei privilegi per scrivere nella directory di destinazione. Se sono presenti servizi installati, è necessario che il chiamante di questa funzione abbia accesso all'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), InstallHinfSectionAe InstallHinfSectionW.

Per eseguire una sezione Install di un file inf specificato, è possibile richiamare InstallHinfSection con il Rundll32.exe usando la sintassi seguente.

RUNDLL32.EXE SETUPAPI.DLL,sezionepercorso

In questo modo viene passato "<sezione><modalità><percorso>" a CmdLineBuffer.

In alternativa, il programma può chiamare InstallHinfSection, InstallHinfSectionAo InstallHinfSection W direttamente, impostando il parametro CmdLineBuffer come segue.

"<section> <mode> <path>"

Dove percorso è il percorso completo del file inf, modalità è il parametro modalità di riavvio e 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.

È consigliabile usare una combinazione dei valori seguenti per modalità. È 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 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 desiderano 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à visualizzata una finestra 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Cautela

Quando viene usata in un'architettura diversa da x86 o amd64 o se usata in un sistema in modalità S, InstallHInfSection richiede che il file INF abbia una sezione VERSIONE INF con una direttiva CatalogFile che punta a un file di catalogo firmato che contiene l'hash del file INF e i file a cui fa riferimento il file INF tramite una sezione INF SourceDisksFiles sezione.

Cautela

Se usato in un sistema la cui architettura nativa non è x86 né amd64, è consigliabile usare InstallHInfSection da un processo di architettura nativo. InstallHInfSection bloccherà molti tipi di operazioni di modifica dello stato del sistema quando vengono usate da un processo di architettura non nativo.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione setupapi.h
libreria Setupapi.lib
dll Setupapi.dll