CryptSetProviderExA 函数 (wincrypt.h)

重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft可能会在将来的版本中删除此 API。
 
CryptSetProviderEx 函数指定本地计算机或当前用户指定提供程序类型的默认 加密服务提供程序(CSP)。
注意 典型应用程序不使用此函数。 它仅供管理应用程序使用。
 

语法

BOOL CryptSetProviderExA(
  [in] LPCSTR pszProvName,
  [in] DWORD  dwProvType,
  [in] DWORD  *pdwReserved,
  [in] DWORD  dwFlags
);

参数

[in] pszProvName

新的默认 CSP 的名称。 这必须是计算机上安装的 CSP。 有关可用加密提供程序的列表,请参阅 加密提供程序名称

[in] dwProvType

pszProvName指定的 CSP 的提供程序类型。

[in] pdwReserved

此参数保留以供将来使用,并且必须 NULL

[in] dwFlags

定义了以下标志值。

价值 意义
CRYPT_DELETE_DEFAULT
0x00000004
可以与CRYPT_MACHINE_DEFAULT或CRYPT_USER_DEFAULT结合使用来删除默认值。
CRYPT_USER_DEFAULT
0x00000002
导致设置指定类型的用户上下文默认 CSP。
CRYPT_MACHINE_DEFAULT
0x00000001
导致设置指定类型的计算机默认 CSP。

返回值

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

如果函数失败,则返回值为零(FALSE)。 有关扩展错误信息,请调用 GetLastError。 可能的错误代码包括下表中显示的错误代码。

返回代码 描述
ERROR_INVALID_PARAMETER
其中一个参数包含无效的值。 这通常是无效的指针。
ERROR_NOT_ENOUGH_MEMORY
操作系统内存不足。

言论

大多数应用程序在调用 CryptAcquireContext 函数时不指定 CSP 名称;但是,应用程序可以指定 CSP 名称,从而选择具有适当安全级别的 CSP。 由于对 CryptSetProviderEx 的调用 决定了该点上所有应用程序使用的指定类型的 CSP ,因此,在未经用户同意的情况下,绝不必须调用 cryptSetProviderEx

注意

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

要求

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

另请参阅

CryptAcquireContext

CryptSetProvider

服务提供程序函数