

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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)，才能使用 金鑰。

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

 `hProvider` 【in】   
您將建立金鑰之金鑰儲存提供者的控制代碼。使用 [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)取得此控制代碼。

 `phKey` 【輸出】   
存放金鑰控制代碼的 `NCRYPT_KEY_HANDLE`變數地址。

 `pszAlgId` 【in】   
指向 null 終止的 Unicode 字串的指標，指定用於建立金鑰的密碼編譯演算法識別符。  
AWS CloudHSM 金鑰儲存提供者 (KSP) 支援下列演算法：    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName` 【in，選用】  
指向包含金鑰名稱的 null 終止 Unicode 字串的指標。如果此參數為 NULL，則此函數會建立不會保留的暫時性金鑰。

`dwLegacyKeySpec` 【in、未使用】  
AWS CloudHSM 金鑰儲存提供者 (KSP) 不會使用此參數。

`dwFlags` 【in】  
用於修改函數行為的旗標。使用下列零或多個值：    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

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

函數會傳回狀態碼，表示成功或失敗。

常見的傳回代碼包括：


****  

| 傳回代碼 | Description | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  函數已成功完成。  | 
|  NTE\$1INVALID\$1PARAMETER  |  一或多個參數無效。  | 
|  NTE\$1FAIL  |  操作無法完成。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 參數包含無效的值。  | 
|  NTE\$1NOT\$1SUPPORTED  |  `pszAlgId` 參數包含不支援的值。  | 
|  NTE\$1EXISTS  |  具有指定名稱的金鑰已存在，且操作未使用 ` NCRYPT_OVERWRITE_KEY_FLAG`。  | 