Funzione SetupInstallFileW (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.
La funzione SetupInstallFile
Se viene copiato un file, il chiamante di questa funzione deve disporre di privilegi di scrittura nella directory di destinazione.
Sintassi
WINSETUPAPI BOOL SetupInstallFileW(
[in] HINF InfHandle,
[in] PINFCONTEXT InfContext,
[in] PCWSTR SourceFile,
[in] PCWSTR SourcePathRoot,
[in] PCWSTR DestinationName,
[in] DWORD CopyStyle,
[in] PSP_FILE_CALLBACK_W CopyMsgHandler,
[in] PVOID Context
);
Parametri
[in] InfHandle
Puntatore facoltativo all'handle a un file INF contenente le sezioni SourceDisksNames e SourceDisksFiles. Se esistono sezioni specifiche della piattaforma per il sistema dell'utente, ad esempio SourceDisksNames.x86 e SourceDisksFiles.x86, verrà usata la sezione specifica della piattaforma. Se InfContext è Null e CopyStyle include SP_COPY_SOURCE_ABSOLUTE o SP_COPY_SOURCEPATH_ABSOLUTE, InfHandle viene ignorato.
[in] InfContext
Puntatore facoltativo al contesto di una riga in una sezione Copia file in un file INF. La routine cerca questo file nella sezione SourceDisksFiles di InfHandle per ottenere informazioni sulla copia dei file. Se non si specifica InfHandle, è necessario SourceFile.
[in] SourceFile
Puntatore facoltativo al nome file (nessun percorso) del file da copiare. Il file viene cercato nella sezione SourceDisksFiles. Il parametro SourceFile
[in] SourcePathRoot
Puntatore facoltativo al percorso radice del file da copiare( ad esempio, A:\ o F:). I percorsi nella sezione SourceDisksNames vengono aggiunti a questo percorso. Il parametro SourcePathRoot viene ignorato se CopyStyle include il flag SP_COPY_SOURCE_ABSOLUTE.
[in] DestinationName
Puntatore facoltativo solo al nome file (nessun percorso) del file di destinazione. Questo parametro può essere Null per indicare che il file di destinazione deve avere lo stesso nome del file di origine. Se non si specifica InfContext, DestinationName fornisce il percorso completo e il nome file per la destinazione.
[in] CopyStyle
Flag che controllano il comportamento dell'operazione di copia file. Questi flag possono essere una combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Elimina il file di origine al termine della copia. Il chiamante non riceve una notifica se l'operazione di eliminazione non riesce. |
|
Copia il file solo in caso di sovrascrittura di un file nel percorso di destinazione. Se la destinazione non esiste, la funzione restituisce FALSE e GetLastError restituisce NO_ERROR. |
|
Esamina ogni file copiato per verificare se le relative risorse di versione indicano che si tratta della 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 nella dwFileVersionMS e dwFileVersionLS membri di una struttura VS_FIXEDFILEINFO, come compilato dalle funzioni della versione. Se uno dei file non dispone di risorse di versione o se dispone di informazioni sulla versione identiche, il file di origine viene considerato più recente. Se il file di origine non è più recente o uguale alla versione e viene specificato il CopyMsgHandler, il chiamante riceve una notifica e può annullare l'operazione di copia. Se CopyMsgHandler non viene specificato, il file non viene copiato. |
|
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 della destinazione esistente, il file viene copiato. |
|
Controllare se il file di destinazione esiste e, in tal caso, inviare una notifica al chiamante che può assegnare il veto alla copia. Se CopyMsgHandler non viene specificato, il file non viene sovrascritto. |
|
Non decomprimere il file. Quando questo flag è impostato, al file di destinazione non viene assegnato il formato non compresso del nome di origine (se appropriato). Ad esempio, la copia di F:\x86\cmd.ex_ in \\installare\ temp restituisce un file di destinazione di \\install\temp\cmd.ex_. Se il flag di 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 specificato, viene rimossa e sostituita con il nome file del file di origine. Quando si specifica SP_COPY_NODECOMP, non è possibile controllare alcuna lingua o informazioni sulla versione. |
|
Esaminare ogni file copiato per verificare se la lingua è diversa dalla lingua di qualsiasi file esistente già presente nella destinazione. In tal caso, e viene specificato il CopyMsgHandler, il chiamante riceve una notifica e può annullare la copia. Se CopyMsgHandler non viene specificato, il file non viene copiato. |
|
SourceFile è un percorso di origine completo. Non cercarlo nella sezione SourceDisksNames del file INF. |
|
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. |
|
Se la destinazione esiste, si comporta come se fosse in uso e accoda il file per la copia al successivo riavvio del sistema. |
|
Controlla se il file di destinazione esiste e, in tal caso, il file non viene sovrascritto. Il chiamante non riceve una notifica. |
|
Esamina ogni file copiato per verificare se le relative risorse di versione (o 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. La funzione restituisce FALSEe GetLastError restituisce NO_ERROR. |
[in] CopyMsgHandler
Puntatore facoltativo a una funzione di callback per ricevere una notifica di varie condizioni che possono verificarsi durante l'operazione di copia file.
[in] Context
Puntatore facoltativo a un valore definito dal chiamante passato come primo parametro della funzione di callback.
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 ottenere informazioni estese sull'errore, chiamare GetLastError.
Se getLastError restituisce NO_ERROR, l'operazione di copia file non è stata completata. Il file potrebbe non essere stato copiato perché l'operazione di copia file non è necessaria o perché la funzione di callback del file ha restituito FALSE.
Osservazioni
Se una directory UNC viene specificata come directory di destinazione di un'installazione di file, è necessario assicurarsi che esista prima di chiamare SetupInstallFile. Le funzioni di installazione non controllano l'esistenza di né creano directory UNC. Se la directory UNC di destinazione non esiste, l'installazione del file avrà esito negativo.
Nota
L'intestazione setupapi.h definisce SetupInstallFile 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.
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 |