DuplicateEncryptionInfoFile 函数 (winefs.h)

将 EFS 元数据从一个文件或目录复制到另一个文件或目录。

语法

DWORD DuplicateEncryptionInfoFile(
  [in]           LPCWSTR                     SrcFileName,
  [in]           LPCWSTR                     DstFileName,
  [in]           DWORD                       dwCreationDistribution,
  [in]           DWORD                       dwAttributes,
  [in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

参数

[in] SrcFileName

要从中复制 EFS 元数据的文件或目录的名称。 必须对此源文件或目录进行加密。

[in] DstFileName

要向其复制 EFS 元数据的文件或目录的名称。

此目标文件或目录不必在调用此函数之前进行加密;但是,如果此函数成功完成,则会对其进行加密。

如果 SrcFileName 的值 指定文件,则此参数的值还必须指定文件,同样对于目录也是如此。 如果此参数指定的文件或目录不存在,则将创建文件或目录(具体取决于 SrcFileName 指定文件或目录)。

[in] dwCreationDistribution

描述如何打开 DstFileName 参数值标识的目标文件或目录。 以下是此参数的有效值。

价值 意义
CREATE_ALWAYS
2
始终创建目标文件或目录。 除 CREATE_NEW 外传递的任何值都将作为 CREATE_ALWAYS进行处理。
CREATE_NEW
1
仅当目标文件或目录尚不存在时,才创建目标文件或目录。 如果它确实存在,并且指定了此值,则此函数将失败。

[in] dwAttributes

目标文件或目录的文件属性。 此函数当前未处理 FILE_READ_ONLY 属性。

[in, optional] lpSecurityAttributes

指向 SECURITY_ATTRIBUTES 结构的指针,该结构指定目标文件或目录的安全属性(如果尚不存在)。 如果指定 NULL,则文件或目录将获取默认的安全描述符。 文件或目录的默认安全描述符中的 ACL 继承自其父目录。

返回值

如果函数成功,则返回值 ERROR_SUCCESS

如果函数失败,则返回值为系统错误代码。 有关错误代码的完整列表,请参阅 系统错误代码 或头文件 WinError.h。

言论

EFS 需要对目标文件或目录进行独占访问才能调用此函数。 如果未提供此访问权限,此函数将失败。

调用方应具有源文件或目录的 EFS 密钥,并且至少具有源文件或目录的 READ_ATTRIBUTE ACL。

指定的源文件和目标文件或目录应位于同一台计算机上;否则,将返回错误。

在 Windows 8 和 Windows Server 2012 中,以下技术支持此函数。

科技 支持
服务器消息块 (SMB) 3.0 协议 是的
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CsvFS)
可复原文件系统 (ReFS)
 

SMB 3.0 不支持具有持续可用性功能的共享上的 EFS。

要求

要求 价值
最低支持的客户端 Windows XP Professional [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winefs.h (包括 Windows.h)
Advapi32.lib
DLL Advapi32.dll

另请参阅

文件加密

文件管理功能

SECURITY_ATTRIBUTES