Condividi tramite


Funzione SetupInstallFromInfSectionA (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.

La funzione SetupInstallFromInfSection esegue tutte le direttive in una sezione Installazione file INF.

Se il Registro di sistema o il file viene modificato, il chiamante di questa funzione ha privilegi per scrivere nella directory di sistema o di destinazione.

Sintassi

WINSETUPAPI BOOL SetupInstallFromInfSectionA(
  HWND                Owner,
  HINF                InfHandle,
  PCSTR               SectionName,
  UINT                Flags,
  HKEY                RelativeKeyRoot,
  PCSTR               SourceRootPath,
  UINT                CopyFlags,
  PSP_FILE_CALLBACK_A MsgHandler,
  PVOID               Context,
  HDEVINFO            DeviceInfoSet,
  PSP_DEVINFO_DATA    DeviceInfoData
);

Parametri

Owner

Puntatore facoltativo all'handle della finestra che possiede tutte le finestre di dialogo generate durante l'installazione, ad esempio per la richiesta del disco o la copia di file. Se proprietario non è specificato, queste finestre di dialogo diventano finestre di primo livello.

InfHandle

Gestire il file INF che contiene la sezione da elaborare.

SectionName

Nome della sezione Installa nel file INF da elaborare.

Flags

Controlla le azioni da eseguire. I flag possono essere una combinazione dei valori seguenti.

SPINST_INIFILES

Eseguire operazioni INI-file (UpdateInis, UpdateIniFields righe nella sezione Installa in corso di elaborazione).

SPINST_REGISTRY

Eseguire operazioni del Registro di sistema (AddReg, Linee DelReg nella sezione Installa in fase di elaborazione).

SPINST_INI2REG

Eseguire operazioni INI-file nel Registro di sistema (righe Ini2Reg nella sezione Installa in corso di elaborazione).

SPINST_LOGCONFIG

Questo flag viene usato solo durante l'installazione di un driver di dispositivo.

Eseguire operazioni di configurazione logica (righe LogConf nella sezione Installa in fase di elaborazione). Questo flag viene usato solo se vengono specificati DeviceInfoSet e DeviceInfoData .

Per altre informazioni sull'installazione di driver di dispositivo, LogConf, DeviceInfoSet o DeviceInfoData, vedere la Guida del programmatore DDK.

SPINST_FILES

Eseguire operazioni di file (CopyFiles, DelFiles, righe RenFiles nella sezione Installa in fase di elaborazione).

SPINST_ALL

Eseguire tutte le operazioni di installazione.

SPINST_REGISTERCALLBACKAWARE

Quando si usa la direttiva RegisterDlls INF per registrare automaticamente le DLL in Windows 2000, i chiamanti di SetupInstallFromInfSection possono ricevere notifiche su ogni file come registrato o non registrato. Per inviare una notifica SPFILENOTIFY_STARTREGISTRATION o SPFILENOTIFY_ENDREGISTRATION alla routine di callback, includere SPINST_REGISTERCALLBACKAWARE più SPINST_REGSVR o SPINST_UNREGSVR. Il chiamante deve anche impostare il parametro MsgHandler .

SPINST_REGSVR

Per inviare una notifica alla routine di callback durante la registrazione di un file, includere SPINST_REGISTERCALLBACKAWARE più SPINST_REGSVR in Flag. Il chiamante deve anche specificare il parametro MsgHandler .

SPINST_UNREGSVR

Per inviare una notifica alla routine di callback durante l'annullamento della registrazione di un file, includere SPINST_REGISTERCALLBACKAWARE più SPINST_UNREGSVR nei flag. Il chiamante deve anche specificare il parametro MsgHandler .

RelativeKeyRoot

Parametro facoltativo che deve essere specificato se Flag include SPINST_REGISTRY o SPINST_INI2REG. Handle in una chiave del Registro di sistema da usare come radice quando il file INF specifica HKR come chiave. Si noti che questo parametro viene ignorato se SetupInstallFromInfSection viene chiamato con il set DeviceInfoSet e DeviceInfoData facoltativo.

SourceRootPath

Radice di origine per le copie di file. Un esempio sarebbe A:\ o \pegasus\win\install. Se i flag includono SPINST_FILES e SourceRootPath è NULL, il sistema fornisce un percorso radice predefinito.

CopyFlags

Parametro facoltativo che deve essere specificato se Flag include SPINST_FILES. Specifica i flag da passare alla funzione SetupQueueCopySection quando i file vengono accodati per la copia. Questi flag possono essere una combinazione dei valori seguenti.

SP_COPY_DELETESOURCE

Eliminare il file di origine al termine della copia completata. Il chiamante non riceve una notifica se l'eliminazione ha esito negativo.

SP_COPY_REPLACEONLY

Copiare il file solo se si esegue questa operazione sovrascrivere un file nel percorso di destinazione.

SP_COPY_NEWER_OR_SAME

Esaminare ogni file copiato per verificare se le relative risorse di versione indicano che è la stessa versione o meno recente di una copia esistente nella destinazione.

Le informazioni sulla versione del file usate durante i controlli della versione sono specificate nei membri dwFileVersionMS e dwFileVersionLS di una struttura VS_FIXEDFILEINFO, come compilato dalle funzioni di versione. Se uno dei file non dispone di risorse di versione o se hanno informazioni sulla versione identiche, il file di origine viene considerato più recente.

Se il file di origine non è uguale alla versione o alla versione successiva e CopyMsgHandler viene specificato, il chiamante riceve una notifica e può annullare la copia. Se CopyMsgHandler non è specificato, il file non viene copiato.

SP_COPY_NEWER_ONLY

Esaminare ogni file copiato per verificare se le relative risorse di versione indicano che non è più recente di una copia esistente nella destinazione. Se il file di origine è più recente ma non uguale alla versione esistente, il file viene copiato.

SP_COPY_NOOVERWRITE

Verificare se il file di destinazione esiste e, in caso affermativo, avvisare il chiamante che può veto la copia. Se CopyMsgHandler non è specificato, il file non viene sovrascritto.

SP_COPY_NODECOMP

Non decomprimere il file. Quando questo flag è impostato, il file di destinazione non viene dato il formato non compresso del nome di origine (se appropriato). Ad esempio, la copia di f:/x86\cmd.ex_ in \install\temp genera un file di destinazione di \install\temp\cmd.ex_. Se il flag SP_COPY_NODECOMP non è stato specificato, il file verrà decompresso e la destinazione verrà chiamata \install\temp\cmd.exe. La parte del nome file di DestinationName, se specificata, viene rimossa e sostituita con il nome del file di origine. Quando viene specificato SP_COPY_NODECOMP, non è possibile controllare alcuna lingua o informazioni sulla versione.

SP_COPY_LANGUAGEAWARE

Esaminare ogni file copiato per verificare se la lingua è diversa dalla lingua di qualsiasi file esistente già nella destinazione. In tal caso, e CopyMsgHandler viene specificato, il chiamante riceve una notifica e può annullare la copia. Se CopyMsgHandler non è specificato, il file non viene copiato.

SP_COPY_SOURCE_ABSOLUTE

SourceFile è un percorso di origine completo. Non cercarlo nella sezione SourceDisksNames del file INF.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot è la parte completa del percorso del file di origine. Ignorare l'origine relativa specificata nella sezione SourceDisksNames del file INF per il supporto di origine in cui si trova il file. Questo flag viene ignorato se viene specificato SP_COPY_SOURCE_ABSOLUTE.

SP_COPY_FORCE_IN_USE

Se la destinazione esiste, comportarsi come se sia in uso e accoda il file per la copia nel riavvio del sistema successivo.

SP_COPY_IN_USE_NEEDS_REBOOT

Se il file è in uso durante l'operazione di copia informa l'utente che il sistema deve essere riavviato. Questo flag viene usato solo quando si chiama in seguito SetupPromptReboot o SetupScanFileQueue.

SP_COPY_NOSKIP

Non concedere all'utente l'opzione di ignorare un file.

SP_COPY_FORCE_NOOVERWRITE

Verificare se il file di destinazione esiste e, in caso affermativo, il file non viene sovrascritto. Il chiamante non riceve una notifica.

SP_COPY_FORCE_NEWER

Esaminare ogni file copiato per verificare se le relative risorse di versione (o i timestamp per i file non immagine) indicano che non è più recente di una copia esistente nella destinazione. Se il file copiato non è più recente, il file non viene copiato. Il chiamante non riceve una notifica.

SP_COPY_WARNIFSKIP

Se l'utente tenta di ignorare un file, avvisare che l'operazione di ignorare un file potrebbe influire sull'installazione. (Usato per i file critici del sistema.

MsgHandler

Puntatore alla routine di callback. La routine di callback deve essere in formato FileCallback. Per altre informazioni, vedere Notifiche .

Questo parametro è facoltativo solo se il parametro Flags non include SPINST_FILES, SPINST_REGISTERCALLBACKAWARE più SPINST_REGSVR o SPINST_UNREGSVR.

MsgHandler deve essere impostato se flag include SPINST_FILES. In questo caso, la notifica viene inviata alla routine di callback quando la coda di file viene eseguita con SetupCommitFileQueue.

MsgHandler deve essere impostato se Flag include SPINST_REGISTERCALLBACKAWARE più SPINST_REGSVR o SPINST_UNREGSVR. In questo caso, una SPFILENOTIFY_STARTREGISTRATION o un SPFILENOTIFY_ENDREGISTRATION viene inviata alla routine di callback una volta ogni volta che un file viene registrato o non registrato usando la direttiva RegisterDlls INF in Windows 2000.

Context

Valore da passare alla funzione di callback quando la coda di file compilata da questa routine viene eseguita internamente tramite SetupCommitFileQueue. Il parametro Context è facoltativo solo se il parametro Flags non include SPINST_FILES. Questo parametro deve essere specificato se Flag include SPINST_FILES.

DeviceInfoSet

Puntatore facoltativo a un handle a un set di informazioni sul dispositivo. Per altre informazioni sulle funzioni di installazione del programma di installazione del dispositivo, vedere la Guida del programmatore DDK.

DeviceInfoData

Puntatore facoltativo a un puntatore alla struttura SP_DEVINFO_DATA che fornisce un contesto a un elemento specifico nel set specificato da DeviceInfoSet. Per altre informazioni sulle funzioni di installazione del programma di installazione del dispositivo, vedere la Guida del programmatore DDK.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se una directory UNC viene specificata come directory di destinazione di un'operazione di copia file, è necessario assicurarsi che esista prima di chiamare SetupInstallFromInfSection. Le funzioni di installazione non controllano l'esistenza di e non creano directory UNC. Se la directory UNC di destinazione non esiste, l'installazione del file avrà esito negativo.

Questa funzione richiede un file WINDOWS INF. Alcuni formati di file INF meno recenti potrebbero non essere supportati.

Nota

L'intestazione setupapi.h definisce SetupInstallFromInfSection 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.

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
Set di API ext-ms-win-setupapi-classinstallers-l1-1-2 (introdotta in Windows 10, versione 10.0.14393)

Vedi anche

Funzioni

Panoramica

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection