加密檔案系統 (EFS) 會篩選加密檔案的開啟方式,讓開啟檔案的應用程式能夠存取未加密的資訊,但前提是它具有適當的認證來存取檔案,並取得解密檔案所需的密鑰。 此檔案的後續讀取作業會產生未加密的文字。 這很適合一般存取加密的檔案,並讓檔案的加密和解密保持透明。 不過,它阻礙了加密檔案的備份,因為如果嘗試使用標準檔案 I/O 呼叫進行備份,例如 CreateFile、ReadFile,WriteFile,備份的檔案會是純文本版本。
提供原始加密函式來解決此問題。 備份應用程式是這些函式的主要用途使用者。 原始加密函式與其他文件系統函式不同,因為開啟、讀取和寫入函式允許存取未經加密的數據流,也允許讀取/寫入$EFS數據流。 因此,原始加密函式的呼叫端不需要存取解密檔案的密碼編譯密鑰。 下列原始加密 API 可用於備份和還原應用程式:
| 原始加密 API | 描述 |
|---|---|
| OpenEncryptedFileRaw | 以加密格式開啟具有數據存取權的加密檔案。 如果呼叫端無法存取檔案的密鑰,則呼叫端需要 SeBackupPrivilege 匯出加密檔案或 SeRestorePrivilege 以匯入加密的檔案。 |
| CloseEncryptedFileRaw | 關閉以 openEncryptedFileRaw 開啟的加密檔案 |
| ReadEncryptedFileRaw | 讀取加密的檔案,以加密格式保留其數據 |
| WriteEncryptedFileRaw | 寫入加密的檔案,以加密格式保留其數據 |
| ImportCallback | 應用程式定義的回呼,以搭配 WriteEncryptedFileRaw |
| ExportCallback | 與 ReadEncryptedFileRaw 搭配使用的應用程式定義回呼 |