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
匯入 (還原) 包含加密檔案的目錄。 這必須與前兩個旗標的其中一個結合,才能指出作業。
OVERWRITE_HIDDEN
4
覆寫匯入時隱藏的檔案。

[out] pvContext

後續呼叫 ReadEncryptedFileRawWriteEncryptedFileRaw 或 CloseEncryptedFileRaw 中必須呈現的內容區塊位址。 請勿修改該字串。

傳回值

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

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

備註

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

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

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

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

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

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

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

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

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

注意

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

規格需求

需求
最低支援的用戶端 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)

另請參閱

BackupRead

BackupWrite

CloseEncryptedFileRaw

檔案加密

檔案管理功能

ReadEncryptedFileRaw

WriteEncryptedFileRaw