CryptCATAdminEnumCatalogFromHash 函数 (mscat.h)

[ CryptCATAdminEnumCatalogFromHash 函数可用于“要求”部分中指定的操作系统。 它在后续版本中可能已更改或不可用。]

CryptCATAdminEnumCatalogFromHash 函数枚举包含指定哈希的目录。 哈希通常从 CryptCATAdminCalcHashFromFileHandle 函数返回。 最后调用此函数后,调用 CryptCATAdminReleaseCatalogContext 以释放分配的内存。

语法

HCATINFO CryptCATAdminEnumCatalogFromHash(
  [in] HCATADMIN hCatAdmin,
  [in] BYTE      *pbHash,
  [in] DWORD     cbHash,
  [in] DWORD     dwFlags,
  [in] HCATINFO  *phPrevCatInfo
);

参数

[in] hCatAdmin

以前由 CryptCATAdminAcquireContext 函数分配的目录管理员上下文的句柄。

[in] pbHash

指向缓冲区的指针,该缓冲区包含通过调用 CryptCATAdminCalcHashFromFileHandle 检索到的哈希。

[in] cbHash

pbHash 分配的缓冲区中的字节数。

[in] dwFlags

此参数保留供将来使用,必须设置为零。

[in] phPrevCatInfo

指向指向上一个目录上下文的句柄的指针或 NULL。 若要获取包含哈希的第一个目录,或启动所有目录的枚举,请为此参数传递 NULL 。 若要继续枚举,请传递上一个调用的返回值,直到找不到更多目录。

返回值

返回值是目录上下文的句柄;如果没有更多要枚举的目录,则返回值为 NULL

注意: HCATINFO 类型只是 HANDLE 的 typedef,因此很容易在错误的上下文中意外使用 HCATINFO。 具体而言,这与从 CryptCATOpen 返回的 HANDLE 不同,即使编译器不会阻止你在需要目录句柄的任何函数中使用 HCATINFO。 若要从此函数获取目录句柄,请先调用 CryptCATCatalogInfoFromContext 以获取目录的文件名,然后使用该文件名调用 CryptCATOpen

有关扩展的错误信息,请调用 GetLastError 函数。 有关操作系统提供的错误代码的完整列表,请参阅 系统错误代码

注意: 函数返回 类型为 HCATINFO 的值,但这只是 HANDLE 的 typedef。 因此,在调用需要不同类型 HANDLE 的函数时,很容易意外地使用 HCATINFO。 具体而言,这与从 CryptCATOpen 返回的 HANDLE 不同,即使编译器不会阻止你在需要目录句柄的任何函数中使用 HCATINFO

若要从此函数获取目录句柄,请先调用 CryptCATCatalogInfoFromContext 以获取目录的文件名,然后使用该文件名调用 CryptCATOpen 以打开目录。

要求

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