

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# NCryptCreatePersistedKey 使用密钥存储提供商 (KSP)
<a name="ksp-library-apis-create-persisted-key"></a>

`NCryptCreatePersistedKey` 函数创建一个新密钥并将其存储在密钥存储提供程序（KSP）中。可以在创建后使用 [`NCryptSetProperty`](ksp-library-apis-set-property.md) 函数设置其属性。必须先调用 [`NCryptFinalizeKey`](ksp-library-apis-finalize-key.md)，然后才能使用该密钥。

## 参数
<a name="ksp-library-apis-create-persisted-key-parameters"></a>

 `hProvider` [in]   
您将在其中创建密钥的密钥存储提供程序的句柄。使用 [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) 获取此句柄。

 `phKey` [out]   
存储密钥句柄的 `NCRYPT_KEY_HANDLE` 变量的地址。

 `pszAlgId` [in]   
指向以 null 结尾的 Unicode 字符串的指针，该字符串指定用于创建密钥的加密算法标识符。  
AWS CloudHSM 密钥存储提供程序 (KSP) 支持以下算法：    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName` [in, optional]  
指向以 null 结尾的 Unicode 字符串的指针，该字符串包含密钥的名称。如果此参数为 NULL，则此函数将创建一个不持久的临时密钥。

`dwLegacyKeySpec` [in, unused]  
AWS CloudHSM 密钥存储提供程序 (KSP) 不使用此参数。

`dwFlags` [in]  
用于修改函数行为的标志。使用零或以下多个值：    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

## 返回值
<a name="ksp-library-apis-create-persisted-key-return-value"></a>

该函数返回一个状态代码，指示成功或失败。

常见的返回代码包括：


****  

| 返回代码 | 说明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  函数已成功完成。  | 
|  NTE\$1INVALID\$1PARAMETER  |  一个或多个参数无效。  | 
|  NTE\$1FAIL  |  操作无法完成。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 参数包含无效值。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` 参数包含不支持的值。  | 
|  NTE\$1EXISTS  |  已存在具有指定名称的密钥且操作未使用 ` NCRYPT_OVERWRITE_KEY_FLAG`。  | 