SetupGetFileCompressionInfoExA 函数 (setupapi.h)

[此函数可用于“要求”部分所示的操作系统。 在后续版本中可能会更改或不可用。 不应再使用 SetupAPI 来安装应用程序。 请改用 Windows Installer 来开发应用程序安装程序。 SetupAPI 继续用于安装设备驱动程序。]

SetupGetFileCompressionInfoEx 函数检查可能压缩的文件并获取压缩类型、文件的完整路径(包括文件名)、压缩大小和未压缩目标文件的大小。 函数的调用方传入要检查的文件的名称,并指向缓冲区和缓冲区大小的位置的指针,以接收返回的文件名和路径。

若要确定返回的路径和文件名的缓冲区大小,可以使用 ActualSourceFileNameBuffer 指定的 NullActualSourceFileNameLen 包含 0 的 SetupGetFileCompressionInfoEx 调用。 函数成功,并在返回时填充 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。 如果 actualSourceFileNameBuffer 为 NULL,则 ActualSourceFileNameLen 必须包含零。

[out] RequiredBufferLen

文件名和完整路径的大小,包括终止 NULL,如果此参数未 NULL。 如果 ActualSourceFileNameBuffer NULLActualSourceFileNameLen 为零,则该函数成功,但填充 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 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 setupapi.h
Setupapi.lib
DLL Setupapi.dll

另请参阅

Functions

概述

SetupDecompressOrCopyFile