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
程式庫 Wofutil.lib
Dll Wofutil.dll

另請參閱

FSCTL_SET_EXTERNAL_BACKING