WriteEncryptedFileRaw 函式 (winbase.h)
還原 (匯入) 加密檔案。 這是一組加密檔案系統 (EFS) 函式,用來實作備份和還原功能,同時維持其加密狀態的檔案。
語法
DWORD WriteEncryptedFileRaw(
[in] PFE_IMPORT_FUNC pfImportCallback,
[in, optional] PVOID pvCallbackContext,
[in] PVOID pvContext
);
參數
[in] pfImportCallback
匯入回呼函式的指標。 系統會多次呼叫回呼函式,每次傳遞由回呼函式填入的緩衝區時,都會有一部份備份的檔案資料。 當回呼函式發出整個檔案已處理的訊號時,它會告訴系統還原作業已完成。 如需詳細資訊,請參閱 ImportCallback。
[in, optional] pvCallbackContext
應用程式定義的和已配置內容區塊的指標。 系統會將此指標傳遞至回呼函式做為參數,讓回呼函式可以存取應用程式特定的資料。 這可以是結構,而且可以包含應用程式所需的任何資料,例如將包含加密檔案備份複本之檔案的控制碼。
[in] pvContext
系統定義內容區塊的指標。 內容區塊是由 OpenEncryptedFileRaw 函式傳回。 請勿修改該字串。
傳回值
如果函式成功,傳回值 會ERROR_SUCCESS。
如果函式失敗,它會傳回 WinError.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標,以取得錯誤的一般文字描述。
備註
正在還原的檔案不會解密;它會以其加密狀態還原。
若要備份加密的檔案,請呼叫 OpenEncryptedFileRaw 來開啟檔案。 然後呼叫 ReadEncryptedFileRaw,並傳遞應用程式定義匯出回呼函式的位址。 系統會多次呼叫此回呼函式,直到整個檔案的內容已讀取和備份為止。 備份完成時,請呼叫 CloseEncryptedFileRaw 以釋放資源並關閉檔案。 如需如何宣告匯出回呼函式的詳細資訊,請參閱 ExportCallback 。
若要還原加密的檔案,請呼叫OpenEncryptedFileRaw,並在ulFlags參數中指定CREATE_FOR_IMPORT。 然後呼叫 WriteEncryptedFileRaw,並傳遞應用程式定義匯入回呼函式的位址。 系統會多次呼叫此回呼函式,直到整個檔案的內容已讀取和還原為止。 還原完成時,請呼叫 CloseEncryptedFileRaw 以釋放資源並關閉檔案。 如需如何宣告匯出回呼函式的詳細資訊,請參閱 ImportCallback 。
如果檔案是從磁片區備份的疏鬆檔案,其疏鬆配置單位大小比還原至的磁片區小,檔案中間的疏鬆區塊可能無法正確對齊較大的區塊,而且函式呼叫會失敗,並設定 最後一 個錯誤碼ERROR_INVALID_PARAMETER。 疏鬆配置單位大小為 16 個叢集或 64 KB,無論大小較小。
此函式僅適用于還原加密的檔案;請參閱 BackupWrite 以還原未加密的檔案。
在 Windows 8、Windows Server 2012 和更新版本中,下列技術支援此函式。
技術 | 支援 |
---|---|
伺服器訊息區 (SMB) 3.0 通訊協定 | Yes |
SMB 3.0 透明容錯移轉 (TFO) | 否 |
具有向外延展檔案共用的 SMB 3.0 (SO) | 否 |
叢集共用磁片區檔案系統 (CsvFS) | 否 |
彈性檔案系統 (ReFS) | 否 |
SMB 3.0 不支援具有持續可用性功能的共用上的 EFS。
規格需求
最低支援的用戶端 | Windows XP Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |
API 集合 | ext-ms-win-advapi32-encryptedfile-l1-1-0 (在 Windows 8) |