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 |