Поделиться через


Функция SetupGetFileCompressionInfoExA (setupapi.h)

[Эта функция доступна для использования в операционных системах, указанных в разделе "Требования". Он может быть изменен или недоступен в последующих версиях. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]

Функция setupGetFileCompressionInfoEx проверяет потенциально сжатый файл и получает тип сжатия, полный путь файла (включая имя файла), сжатый размер и размер несжатого целевого файла. Вызывающий объект функции передает имя файла для проверки и указателей на расположения буфера и размера буфера для получения возвращаемого имени файла и пути.

Чтобы определить размер буфера для возвращаемого пути и имени файла, можно вызвать SetupGetFileCompressionInfoEx с ActualSourceFileNameBuffer указанной null и ActualSourceFileNameLen, содержащей 0. Функция успешно завершается и возвращает заполнение RequiredBufferLen.

Синтаксис

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
);

Параметры

[in] SourceFileName

Имя файла потенциально сжатого файла для проверки. Если файл не найден на исходном носителе точно так же, как по имени, программа установки выполняет поиск до двух альтернативных имен. Например; Если программа установки не находит F:\x86\cmd.exe, выполняется поиск F:\mpis\cmd.ex_ и если это имя не найдено, он ищет F:\x86\cmd.ex$.

[in, out] ActualSourceFileNameBuffer

Указатель на буфер, который получает фактическое имя файла и путь, если этот параметр не null. Это допустимо, только если функция возвращает NO_ERROR.

[in, out] ActualSourceFileNameBufferLen

Размер буфера, указанного ActualSourceFileNameBuffer, в символах. Обычно используется размер буфера MAX_PATH. Если ActualSourceFileNameLen слишком мал, функция завершается ошибкой с ERROR_INSUFFICIENT_BUFFER. ActualSourceFileNameLen должен содержать ноль, если ActualSourceFileNameBufferNULL.

[out] RequiredBufferLen

Размер имени файла и полного пути, включая конечный NULL, если этот параметр не NULL. Если ActualSourceFileNameBuffernull и ActualSourceFileNameLen равно нулю, функция завершается успешно, но заполняется RequiredBufferLen. Этот параметр действителен, только если функция возвращает NO_ERROR или ERROR_INSUFFICIENT_BUFFER.

[out] SourceFileSize

Указатель на переменную, в которой эта функция возвращает размер файла в текущей форме, который является текущим размером файла с именем ActualSourceFileNameBuffer. Размер определяется путем изучения исходного файла; Он не извлекается из INF-файла. Размер исходного файла действителен, только если функция возвращает NO_ERROR или ERROR_INSUFFICIENT_BUFFER.

[out] TargetFileSize

Указатель на переменную, в которой эта функция возвращает размер, который будет занимать файл при распаковке или копировании. Если файл не сжимается, это значение будет совпадать с SourceFileSize. Размер определяется путем изучения файла; Он не извлекается из INF-файла. Размер целевого файла действителен, только если функция возвращает NO_ERROR или ERROR_INSUFFICIENT_BUFFER.

[out] CompressionType

Указатель на переменную, в которой эта функция возвращает значение, указывающее тип сжатия, используемого для ActualSourceFileName. Тип сжатия действителен, только если функция возвращает NO_ERROR или ERROR_INSUFFICIENT_BUFFER. Это значение параметра может быть одним из следующих флагов.

FILE_COMPRESSION_NONE

Исходный файл не сжимается с распознаваемым алгоритмом сжатия.

FILE_COMPRESSION_WINLZA

Исходный файл сжимается с сжатием LZ.

FILE_COMPRESSION_MSZIP

Исходный файл сжимается с сжатием MSZIP.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение TRUE (ненулевое).

Если функция завершается ошибкой, возвращаемое значение FALSE (ноль). Функция также может возвращать один из следующих системных кодов ошибок.

Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Так как SetupGetFileCompressionInfoEx определяет сжатие путем изучения физического файла, приложение установки должно убедиться, что файл присутствует перед вызовом SetupGetFileCompressionInfoEx.

Заметка

Заголовок setupapi.h определяет SetupGetFileCompressionInfoEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка setupapi.h
библиотеки Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupDecompressOrCopyFile