Funzione SetupGetFileCompressionInfoExA (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 SetupGetFileCompressionInfoEx esamina un file potenzialmente compresso e ottiene il tipo di compressione, il percorso completo del file (incluso il nome del file), le dimensioni compresse e le dimensioni del file di destinazione non compresso. Il chiamante della funzione passa il nome del file da esaminare e puntatore alle posizioni per il buffer e le dimensioni del buffer per ricevere il nome e il percorso del file restituiti.

Per determinare le dimensioni del buffer per il percorso restituito e il nome del file, è possibile chiamare SetupGetFileCompressionInfoEx con ActualSourceFileNameBuffer specificato Null e ActualSourceFileNameLen contenente 0. La funzione ha esito positivo e in caso di riempimento restituito in RequiredBufferLen.

Sintassi

WINSETUPAPI BOOL SetupGetFileCompressionInfoExA(
  [in]      PCSTR  SourceFileName,
  [in, out] PSTR   ActualSourceFileNameBuffer,
  [in, out] DWORD  ActualSourceFileNameBufferLen,
  [out]     PDWORD RequiredBufferLen,
  [out]     PDWORD SourceFileSize,
  [out]     PDWORD TargetFileSize,
  [out]     PUINT  CompressionType
);

Parametri

[in] SourceFileName

Nome file del file potenzialmente compresso da esaminare. Se il file non viene trovato nel supporto di origine esattamente come denominato, il programma di installazione cerca fino a due nomi alternativi. Per esempio; se il programma di installazione non trova F:\x86\cmd.exe, cerca F:\mpis\cmd.ex_ e se tale nome non viene trovato, cerca F:\x86\cmd.ex$.

[in, out] ActualSourceFileNameBuffer

Puntatore a un buffer che riceve il nome del file effettivo e il percorso se questo parametro non è NULL. Questa operazione è valida solo se la funzione restituisce NO_ERROR.

[in, out] ActualSourceFileNameBufferLen

Dimensioni del buffer specificato da ActualSourceFileNameBuffer, in caratteri. In genere si userebbe una dimensione del buffer di MAX_PATH. Se ActualSourceFileNameLen è troppo piccolo, la funzione ha esito negativo con ERROR_INSUFFICIENT_BUFFER. ActualSourceFileNameLen deve contenere zero se ActualSourceFileNameBuffer è NULL.

[out] RequiredBufferLen

Dimensioni del nome del file e del percorso completo, incluso il valore NULL di terminazione, se questo parametro non è NULL. Se ActualSourceFileNameBuffer è NULL e ActualSourceFileNameLen è zero, la funzione ha esito positivo ma inserisce RequiredBufferLen. Questo parametro è valido solo se la funzione restituisce NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] SourceFileSize

Puntatore a una variabile in cui questa funzione restituisce le dimensioni del file nel formato corrente, ovvero le dimensioni correnti del file denominato da ActualSourceFileNameBuffer. Le dimensioni sono determinate esaminando il file di origine; non viene recuperato da un file INF. Le dimensioni del file di origine sono valide solo se la funzione restituisce NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] TargetFileSize

Puntatore a una variabile in cui questa funzione restituisce le dimensioni che il file occupa quando non viene compresso o copiato. Se il file non è compresso, questo valore sarà uguale a SourceFileSize. Le dimensioni sono determinate esaminando il file; non viene recuperato da un file INF. La dimensione del file di destinazione è valida solo se la funzione restituisce NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] CompressionType

Puntatore a una variabile in cui questa funzione restituisce un valore che indica il tipo di compressione usato in ActualSourceFileName. Il tipo di compressione è valido solo se la funzione restituisce NO_ERROR o ERROR_INSUFFICIENT_BUFFER. Questo valore di parametro può essere uno dei flag seguenti.

FILE_COMPRESSION_NONE

Il file di origine non viene compresso con un algoritmo di compressione riconosciuto.

FILE_COMPRESSION_WINLZA

Il file di origine viene compresso con la compressione LZ.

FILE_COMPRESSION_MSZIP

Il file di origine viene compresso con la compressione MSZIP.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE (diverso da zero).

Se la funzione ha esito negativo, il valore restituito è FALSE (zero). La funzione può anche restituire uno dei codici di errore di sistema seguenti.

Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Poiché SetupGetFileCompressionInfoEx determina la compressione esaminando il file fisico, l'applicazione di installazione deve assicurarsi che il file sia presente prima di chiamare SetupGetFileCompressionInfoEx.

Nota

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

Vedi anche

Funzioni

Panoramica

SetupDecompressOrCopyFile