cryptCATAdminAcquireContext2 函数 (mscat.h)

CryptCATAdminAcquireContext2 函数获取给定哈希算法和哈希策略的目录管理员上下文的句柄。

可以在后续调用以下函数时使用此句柄:

此函数没有关联的导入库。 必须使用 LoadLibraryGetProcAddress 函数动态链接到 Wintrust.dll。

语法

BOOL CryptCATAdminAcquireContext2(
  [out]          HCATADMIN               *phCatAdmin,
  [in, optional] const GUID              *pgSubsystem,
  [in, optional] PCWSTR                  pwszHashAlgorithm,
  [in, optional] PCCERT_STRONG_SIGN_PARA pStrongHashPolicy,
                 DWORD                   dwFlags
);

parameters

[out] phCatAdmin

指向此函数分配的目录管理员上下文句柄的指针。 使用完句柄后,通过调用 CryptCATAdminReleaseContext 函数将其关闭。

[in, optional] pgSubsystem

指向标识子系统的 GUID 的指针。 DRIVER_ACTION_VERIFY表示操作系统组件和第三方驱动程序的子系统。 这是大多数实现使用的子系统。

[in, optional] pwszHashAlgorithm

可选的以 null 结尾的 Unicode 字符串,指定计算和验证哈希时要使用的哈希算法的名称。 此值可以为 NULL。 如果为 NULL,则可以选择默认哈希算法,具体取决于为 pStrongHashPolicy 参数设置的值。 Windows 8 中的默认算法为 SHA1。 在将来的 Windows 版本中,默认值可能会更改。 有关详细信息,请参阅“备注”。

[in, optional] pStrongHashPolicy

指向CERT_STRONG_SIGN_PARA 结构的指针,该结构包含用于检查强签名的参数。 函数选择满足指定策略的最低通用哈希算法,以及 pwszHashAlgorithm 参数指定的算法,如果未) 指定算法,则选择系统默认算法 (。

dwFlags

保留。 此值必须为零。

返回值

如果函数成功,则返回值为非零 (TRUE) 。

如果函数失败,则返回值为零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

下表列出了 GetLastError 函数最常返回的错误代码。

返回代码 说明
ERROR_INVALID_PARAMETER
phCatAdmin 参数不能为 NULL

dwFlags 参数必须为零 (0) 。

ERROR_NOT_ENOUGH_MEMORY
内存不足,无法创建新的目录管理员对象。
NTE_BAD_ALGID
找不到 pwszHashAlgorithm 参数指定的哈希算法。

注解

通过此函数,可以选择或选择要在需要目录管理员上下文的函数中使用的哈希算法。 尽管可以设置哈希算法的名称,但我们建议让函数确定算法。 这样做可以保护应用程序免受将来可能变得不受信任的硬编码算法的伤害。

要求

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

另请参阅

CryptCATAdminAddCatalog

CryptCATAdminReleaseContext

CryptCATAdminRemoveCatalog