OpenEncryptedFileRawA 函数 (winbase.h)
打开加密文件,以便备份(导出)或还原(导入)文件。 这是一组加密文件系统(EFS)函数之一,旨在实现备份和还原功能,同时维护处于加密状态的文件。
语法
DWORD OpenEncryptedFileRawA(
[in] LPCSTR lpFileName,
[in] ULONG ulFlags,
[out] PVOID *pvContext
);
参数
[in] lpFileName
要打开的文件的名称。 该字符串必须包含 Windows 字符集中的字符。
[in] ulFlags
要执行的操作。 此参数可以是以下值之一。
价值 | 意义 |
---|---|
|
打开文件进行导出(备份)。 |
|
正在打开文件进行导入(还原)。 |
|
导入(还原)包含加密文件的目录。 这必须与前两个标志之一结合使用才能指示操作。 |
|
在导入时覆盖隐藏的文件。 |
[out] pvContext
必须在后续调用 ReadEncryptedFileRaw、WriteEncryptedFileRaw或 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 以导入加密文件。
BackupRead 和 BackupWrite 函数处理未加密文件的备份和还原。
在 Windows 8、Windows Server 2012 及更高版本中,以下技术支持此函数。
科技 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是的 |
SMB 3.0 透明故障转移 (TFO) | 不 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 不 |
群集共享卷文件系统 (CsvFS) | 不 |
可复原文件系统 (ReFS) | 不 |
SMB 3.0 不支持具有持续可用性功能的共享上的 EFS。
注意
winbase.h 标头将 OpenEncryptedFileRaw 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 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 中引入) |