FileEncryptionStatusA 函数 (winbase.h)

检索指定文件的加密状态。

语法

BOOL FileEncryptionStatusA(
  [in]  LPCSTR  lpFileName,
  [out] LPDWORD lpStatus
);

参数

[in] lpFileName

文件的名称。

[out] lpStatus

指向接收文件的加密状态的变量的指针。 此参数的取值可为下列值之一:

含义
FILE_ENCRYPTABLE
0
文件可以加密。

Windows 的 Home、Home Premium、Starter 和 ARM 版本:可能会返回FILE_ENCRYPTABLE,但 EFS 不支持在这些版本的 Windows 上加密文件。

FILE_IS_ENCRYPTED
1
文件已加密。
FILE_READ_ONLY
8
该文件是只读文件。
FILE_ROOT_DIR
3
文件是根目录。 无法加密根目录。
FILE_SYSTEM_ATTR
2
此文件是系统文件。 无法加密系统文件。
FILE_SYSTEM_DIR
4
该文件是一个系统目录。 无法加密系统目录。
FILE_SYSTEM_NOT_SUPPORT
6
文件系统不支持文件加密。
FILE_UNKNOWN
5
加密状态未知。 文件可能已加密。
FILE_USER_DISALLOWED
7
保留供将来使用。

返回值

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

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

注解

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

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

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

注意

winbase.h 标头将 FileEncryptionStatus 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

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

另请参阅

EncryptFile

文件加密

文件管理函数