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 |