共用方式為


OpenEncryptedFileRawA 函式 (winbase.h)

開啟加密的檔案,以便備份(匯出)或還原(匯入)檔案。 這是一組加密文件系統 (EFS) 函式,旨在實作備份和還原功能,同時維護其加密狀態的檔案。

語法

DWORD OpenEncryptedFileRawA(
  [in]  LPCSTR lpFileName,
  [in]  ULONG  ulFlags,
  [out] PVOID  *pvContext
);

參數

[in] lpFileName

要開啟的檔名。 字串必須包含來自 Windows 字元集的字元。

[in] ulFlags

要執行的作業。 此參數可能是下列其中一個值。

價值 意義
0
開啟導出的檔案(備份)。
CREATE_FOR_IMPORT
1
正在開啟檔案進行匯入(還原)。
CREATE_FOR_DIR
2
匯入 (restore) 包含加密檔案的目錄。 這必須與前兩個旗標的其中一個結合,才能指出作業。
OVERWRITE_HIDDEN
4
覆寫匯入時隱藏的檔案。

[out] pvContext

必須在後續呼叫 readEncryptedFileRaw WriteEncryptedFileRawCloseEncryptedFileRaw中呈現的內容區塊位址。 請勿修改它。

傳回值

如果函式成功,則會傳回 ERROR_SUCCESS

如果函式失敗,它會傳回 WinError.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標來取得錯誤的泛型文字描述。

言論

呼叫端必須具有檔案的讀取或寫入許可權,或者它必須具有備份許可權 SeBackupPrivilege 位於檔案所在的計算機上,才能讓呼叫成功。

若要備份加密的檔案,請呼叫 OpenEncryptedFileRaw 以開啟檔案,然後呼叫 ReadEncryptedFileRaw。 備份完成時,請呼叫 CloseEncryptedFileRaw

若要還原加密的檔案,請呼叫 OpenEncryptedFileRaw,在 ulFlags 參數中指定 CREATE_FOR_IMPORT,然後呼叫 WriteEncryptedFileRaw 一次。 作業完成時,請呼叫 CloseEncryptedFileRaw

OpenEncryptedFileRaw 如果 lpFileName 在遠端電腦上開啟加密檔案時超過 MAX_PATH 個字元, 就會失敗。

如果呼叫端無法存取檔案的密鑰,則呼叫端需要 SeBackupPrivilege 匯出加密檔案或 SeRestorePrivilege 以匯入加密的檔案。

BackupReadBackupWrite 函式會處理未加密檔案的備份和還原。

在 Windows 8、Windows Server 2012 及更新版本中,下列技術支援此功能。

科技 支援
伺服器消息塊 (SMB) 3.0 通訊協定 是的
SMB 3.0 透明故障轉移 (TFO)
具有向外延展檔案共用的SMB 3.0(SO)
叢集共用磁碟區檔案系統 (CsvFS)
復原檔案系統 (ReFS)
 

SMB 3.0 不支援具有持續可用性功能的共用上的EFS。

注意

winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 OpenEncryptedFileRaw 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Advapi32.lib
DLL Advapi32.dll
API 集 ext-ms-win-advapi32-encryptedfile-l1-1-0 (在 Windows 8 中引進)

另請參閱

BackupRead

BackupWrite

CloseEncryptedFileRaw

檔案加密

檔案管理功能

ReadEncryptedFileRaw

WriteEncryptedFileRaw