CryptSetProviderA 函数 (wincrypt.h)

重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
 
CryptSetProvider 函数指定当前用户的默认加密服务提供程序 (CSP) 。

如果设置了当前用户的默认提供程序,则该用户通过指定 dwProvType 提供程序类型(而不是 CSP 名称)对 CryptAcquireContext 的任何调用获取该默认提供程序。

此函数的增强版本 CryptSetProviderEx 也可用。

注意 典型的应用程序不使用此函数。 它仅供管理应用程序使用。
 

语法

BOOL CryptSetProviderA(
  [in] LPCSTR pszProvName,
  [in] DWORD  dwProvType
);

参数

[in] pszProvName

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

[in] dwProvType

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

返回值

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

如果函数失败,则返回值为零, (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。 下表列出了一些可能的错误代码。

返回代码 说明
ERROR_INVALID_HANDLE
其中一个参数指定无效的句柄。
ERROR_INVALID_PARAMETER
其中一个参数包含无效的值。 这通常是无效的指针。
ERROR_NOT_ENOUGH_MEMORY
操作系统在操作期间内存不足。
 

错误也可以从内部调用 RegCreateKeyExRegSetValueEx 传播

注解

典型的应用程序在调用 CryptAcquireContext 时不指定 CSP 名称;但是,应用程序确实可以选择特定的 CSP。 这使用户能够自由选择具有适当安全级别的 CSP。

由于调用 CryptSetProvider 确定从该点运行的所有应用程序使用的指定类型的 CSP,因此未经用户同意不得调用此函数。

注意

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

要求

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

另请参阅

CryptAcquireContext

加密提供程序名称

RegCreateKeyEx

RegSetValueEx

服务提供程序函数