EncryptionDisable 函数 (winefs.h)

为指定目录及其中的文件禁用或启用加密。 它不会影响所指示目录下的子目录的加密。

语法

BOOL EncryptionDisable(
  [in] LPCWSTR DirPath,
  [in] BOOL    Disable
);

参数

[in] DirPath

要启用或禁用加密的目录的名称。

[in] Disable

指示是禁用 (TRUE) 加密还是 (FALSE) 启用加密。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

在正常情况下, EncryptFile 不会使用 设置 FILE_ATTRIBUTE_SYSTEM 属性加密文件和目录。 可以替代 FILE_ATTRIBUTE_SYSTEM 属性并加密文件。 此外,如果文件或目录标记为 FILE_ATTRIBUTE_SYSTEM 属性,则通常对目录列表和 Windows 资源管理器目录窗口中的用户不可见。 EncryptionDisable 禁用目录和文件的加密。 它不会影响设置了 FILE_ATTRIBUTE_SYSTEM 属性的文件的可见性。

如果传入 TRUE则 EncryptionDisable 会将以下内容写入目录中的 Desktop.ini 文件, (创建该文件(如有必要)) :

[Encryption]
Disable=1

如果节已存在,但 Disable 设置为 0,则将设置为 1。

此后, EncryptFile 将在目录和其中的文件上失败, GetLastError 返回的代码将 ERROR_DIR_EFS_DISALLOWED。 此函数不会影响给定目录中子目录的加密。

用户还可以在 Desktop.ini 文件中手动添加或编辑上述行,并产生相同的效果。

EncryptionDisable 仅影响 FileEncryptionStatusEncryptFile。 加密目录后,将加密在没有 FILE_ATTRIBUTE_SYSTEM 属性的情况下创建的任何新文件和新子目录。

如果传入 FALSEEncryptionDisable 会将以下内容写入 Desktop.ini 文件:

[Encryption]
Disable=0

这意味着允许在该目录中的文件上进行文件加密。

如果尝试使用 EncryptionDisable 将目录设置为其已处于的状态,则函数会成功,但不起作用。

如果尝试使用 EncryptionDisable 对文件禁用或启用加密,则尝试将失败。

在 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

另请参阅

DecryptFile

EncryptFile

文件特性常量

文件加密

文件管理函数

FileEncryptionStatus

GetFileAttributes