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 ()

另请参阅

BackupWrite

CloseEncryptedFileRaw

文件加密

文件管理函数

ImportCallback

OpenEncryptedFileRaw

ReadEncryptedFileRaw