CredEnumerateA 函数 (wincred.h)

CredEnumerate 函数枚举用户凭据集中的凭据。 使用的凭据集是与当前令牌的登录会话关联的凭据集。 该令牌不得禁用用户的 SID。

语法

BOOL CredEnumerateA(
  [in]  LPCSTR       Filter,
  [in]  DWORD        Flags,
  [out] DWORD        *Count,
  [out] PCREDENTIALA **Credential
);

参数

[in] Filter

指向以 null 结尾的字符串的指针,该字符串包含返回凭据的筛选器。 仅返回 TargetName 与筛选器匹配的凭据。 筛选器指定名称前缀,后跟星号。 例如,筛选器“FRED*”将返回 TargetName 以字符串“FRED”开头的所有凭据。

如果指定 NULL ,则将返回所有凭据。

[in] Flags

此参数的值可以是与按位 OR 运算组合的以下值的零个或多个值。

含义
CRED_ENUMERATE_ALL_CREDENTIALS
0x1
此函数枚举用户凭据集中的所有凭据。 每个凭据的目标名称以“namespace:attribute=target”格式返回。 如果设置了此标志并且 Filter 参数不是 NULL,则该函数将失败并返回 ERROR_INVALID_FLAGS

Windows Server 2003 和 Windows XP: 不支持此标志。

[out] Count

凭据数组中返回的 凭据 计数。

[out] Credential

指向指向凭据的指针数组的指针的指针。 返回的凭据是单个分配的块。 缓冲区中包含的任何指针都是指向此单个分配块内的位置的指针。 必须通过调用 CredFree 来释放单个返回的缓冲区。

返回值

该函数在成功时返回 TRUE ,在失败时返回 FALSE 。 可以调用 GetLastError 函数以获取更具体的状态代码。 可以返回以下状态代码。

返回代码/值 说明
ERROR_NOT_FOUND
1168 (0x490)
不存在与指定 筛选器匹配的凭据。
ERROR_NO_SUCH_LOGON_SESSION
1312 (0x520)
登录会话不存在,或者没有与此登录会话关联的凭据集。 网络登录会话没有关联的凭据集。
ERROR_INVALID_FLAGS
1004 (0x3EC)
Flags 参数指定了无效的标志,或者为 Flags 参数指定了CRED_ENUMERATE_ALL_CREDENTIALS而 Filter 参数不是 NULL

注解

注意

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

要求

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

另请参阅

CredFree

GetLastError