SetupGetFileCompressionInfoExA 函数 (setupapi.h)

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

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

若要确定返回路径和文件名的缓冲区大小,可以使用 ActualSourceFileNameBuffer 指定的 Null 和包含 0 的 ActualSourceFileNameLen 调用 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)。 如果 ActualSourceFileNameBufferNULLActualSourceFileNameLen 为零,则函数成功,但填充 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 [仅限桌面应用]
目标平台 Windows
标头 setupapi.h
Library Setupapi.lib
DLL Setupapi.dll

请参阅

函数

概述

SetupDecompressOrCopyFile