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 仅影响 FileEncryptionStatus 和 EncryptFile。 加密目录后,将加密在没有 FILE_ATTRIBUTE_SYSTEM 属性的情况下创建的任何新文件和新子目录。
如果传入 FALSE , EncryptionDisable 会将以下内容写入 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 |