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


Функция 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 должно содержать ноль, если ActualSourceFileNameBuffer имеет значение NULL.

[out] RequiredBufferLen

Размер имени файла и полного пути, включая завершающее значение NULL, если этот параметр не равен NULL. Если Параметр ActualSourceFileNameBuffer имеет значение NULL , а 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header setupapi.h
Библиотека Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupDecompressOrCopyFile