wofSetFileDataLocation 函数 (wofapi.h)

用于将文件从由物理文件支持更改为由系统数据提供程序支持。

语法

HRESULT WofSetFileDataLocation(
  [in] HANDLE FileHandle,
  [in] ULONG  Provider,
  [in] PVOID  ExternalFileInfo,
  [in] ULONG  Length
);

参数

[in] FileHandle

使用 CreateFile 或类似 API 打开的文件的句柄。

[in] Provider

指示哪个提供程序支持此文件。 当前定义的提供程序包括:

WOF_PROVIDER_WIM 指示应从 WIM 文件获取文件的数据。 访问时,数据以透明方式从 WIM 文件中提取并提供给应用程序。 如果修改了文件内容,则以透明方式解压缩数据,如果未使用此 API,则文件将还原到其物理形式。
WOF_PROVIDER_FILE 指示文件的数据应与文件本身一起压缩和存储。 访问时,数据会以透明方式解压缩并提供给应用程序。 如果修改了文件内容,则以透明方式解压缩数据,如果未使用此 API,则文件将还原到其物理形式。 此提供程序需要Windows 10。

[in] ExternalFileInfo

提供特定于指定提供程序的数据。 每个定义的提供程序的数据结构为:

WOF_PROVIDER_WIM WIM_EXTERNAL_FILE_INFO
WOF_PROVIDER_FILE WOF_FILE_COMPRESSION_INFO

[in] Length

指定提供程序特定数据的长度(以字节为单位)。 这应对应于上面定义的结构:

WOF_PROVIDER_WIM sizeof (WIM_EXTERNAL_FILE_INFO)
WOF_PROVIDER_FILE sizeof (WOF_FILE_COMPRESSION_INFO)

返回值

此函数返回指示成功或失败原因的 HRESULT。

注解

使用 WOF_PROVIDER_FILE 时,操作可能会失败并出现ERROR_COMPRESSION_NOT_BENEFICIAL。 这表示已尝试压缩数据,但未保存磁盘空间,因此未压缩文件。 对于大多数应用程序,这可以视为成功条件。

要求

要求
目标平台 Windows
标头 wofapi.h
Library Wofutil.lib
DLL Wofutil.dll

另请参阅

FSCTL_SET_EXTERNAL_BACKING