Compartir a través de


Función SetupGetFileCompressionInfoExW (setupapi.h)

[Esta función está disponible para su uso en los sistemas operativos indicados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. SetupAPI ya no debe usarse para instalar aplicaciones. En su lugar, use Windows Installer para desarrollar instaladores de aplicaciones. SetupAPI sigue utilizándose para instalar controladores de dispositivo.

La función SetupGetFileCompressionInfoEx examina un archivo potencialmente comprimido y obtiene el tipo de compresión, la ruta de acceso completa del archivo (incluido el nombre de archivo), el tamaño comprimido y el tamaño del archivo de destino sin comprimir. El autor de la llamada de la función pasa el nombre del archivo que se va a examinar y puntero a las ubicaciones del tamaño del búfer y del búfer para recibir el nombre de archivo y la ruta de acceso devueltos.

Para determinar el tamaño del búfer para la ruta de acceso y el nombre de archivo devueltos, puede llamar a SetupGetFileCompressionInfoEx con ActualSourceFileNameBuffer especificado Null y ActualSourceFileNameLen que contenga 0. La función se realiza correctamente y, al devolver, se rellena RequiredBufferLen.

Sintaxis

WINSETUPAPI BOOL SetupGetFileCompressionInfoExW(
  [in]      PCWSTR SourceFileName,
  [in, out] PWSTR  ActualSourceFileNameBuffer,
  [in, out] DWORD  ActualSourceFileNameBufferLen,
  [out]     PDWORD RequiredBufferLen,
  [out]     PDWORD SourceFileSize,
  [out]     PDWORD TargetFileSize,
  [out]     PUINT  CompressionType
);

Parámetros

[in] SourceFileName

Nombre de archivo del archivo potencialmente comprimido que se va a examinar. Si el archivo no se encuentra en el medio de origen exactamente como se denomina, el programa de instalación busca hasta dos nombres alternativos. Por ejemplo; si el programa de instalación no encuentra F:\x86\cmd.exe, busca F:\mpis\cmd.ex_ y, si no se encuentra ese nombre, busca F:\x86\cmd.ex$.

[in, out] ActualSourceFileNameBuffer

Puntero a un búfer que recibe el nombre de archivo y la ruta de acceso reales si este parámetro no es NULL. Esto solo es válido si la función devuelve NO_ERROR.

[in, out] ActualSourceFileNameBufferLen

Tamaño del búfer especificado por ActualSourceFileNameBuffer, en caracteres. Normalmente, usaría un tamaño de búfer de MAX_PATH. Si ActualSourceFileNameLen es demasiado pequeño, se produce un error en la función con ERROR_INSUFFICIENT_BUFFER. ActualSourceFileNameLen debe contener cero si ActualSourceFileNameBuffer es NULL.

[out] RequiredBufferLen

Tamaño del nombre de archivo y la ruta de acceso completa, incluida la terminación NULL, si este parámetro no es NULL. Si ActualSourceFileNameBuffer es NULL y ActualSourceFileNameLen es cero, la función se realiza correctamente, pero rellena RequiredBufferLen. Este parámetro solo es válido si la función devuelve NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] SourceFileSize

Puntero a una variable en la que esta función devuelve el tamaño del archivo en su forma actual, que es el tamaño actual del archivo denominado por ActualSourceFileNameBuffer. El tamaño se determina examinando el archivo de origen; no se recupera de un archivo INF. El tamaño del archivo de origen solo es válido si la función devuelve NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] TargetFileSize

Puntero a una variable en la que esta función devuelve el tamaño que ocupará el archivo cuando se descomprima o se copie. Si el archivo no está comprimido, este valor será el mismo que SourceFileSize. El tamaño se determina examinando el archivo; no se recupera de un archivo INF. El tamaño del archivo de destino solo es válido si la función devuelve NO_ERROR o ERROR_INSUFFICIENT_BUFFER.

[out] CompressionType

Puntero a una variable en la que esta función devuelve un valor que indica el tipo de compresión usado en ActualSourceFileName. El tipo de compresión solo es válido si la función devuelve NO_ERROR o ERROR_INSUFFICIENT_BUFFER. Este valor de parámetro puede ser una de las siguientes marcas.

FILE_COMPRESSION_NONE

El archivo de origen no se comprime con un algoritmo de compresión reconocido.

FILE_COMPRESSION_WINLZA

El archivo de origen se comprime con compresión LZ.

FILE_COMPRESSION_MSZIP

El archivo de origen se comprime con compresión MSZIP.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE (distinto de cero).

Si se produce un error en la función, el valor devuelto es FALSE (cero). La función también puede devolver uno de los siguientes códigos de error del sistema.

Para obtener información de error extendida, llame a GetLastError.

Comentarios

Dado que SetupGetFileCompressionInfoEx determina la compresión examinando el archivo físico, la aplicación de instalación debe asegurarse de que el archivo está presente antes de llamar a SetupGetFileCompressionInfoEx.

Nota

El encabezado setupapi.h define SetupGetFileCompressionInfoEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado setupapi.h
Library Setupapi.lib
Archivo DLL Setupapi.dll

Vea también

Funciones

Información general

SetupDecompressOrCopyFile