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 中定义的非零错误代码。 可以将 FormatMessageFORMAT_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