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)
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)
 

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

要求

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

另请参阅

文件加密

文件管理函数

SECURITY_ATTRIBUTES