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 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 否 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 否 |
群集共享卷文件系统 (CSV) | 否 |
弹性文件系统 (ReFS) | 否 |
SMB 3.0 不支持具有连续可用性功能的共享上的 EFS。
要求
最低受支持的客户端 | Windows XP Professional [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |
API 集 | windows 8 中引入的 ext-ms-win-advapi32-encryptedfile-l1-1-0 () |