

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

# NCryptEnumKeys 使用密钥存储提供商 (KSP)
<a name="ksp-library-apis-enum-keys"></a>

NCryptEnumKeys 函数列出了存储在密钥存储提供程序 (KSP) 中的密钥。

## 参数
<a name="ksp-library-apis-enum-keys-parameters"></a>

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

 `pszScope` [in, unused]   
 将此参数设置为 NULL。

 `ppKeyName` [out]   
指向存储密钥名称的 `NCryptKeyName` 结构的指针地址。要在使用后释放内存，请调用 `NCryptFreeBuffer`。

`ppEnumState` [in, out]  
用于跟踪枚举进度的 VOID 指针地址。密钥存储提供程序在内部使用此信息来管理枚举序列。要从头开始新的枚举，请将此指针设置为 NULL。  
要在完成枚举后释放此内存，请将此指针传递给 `NCryptFreeBuffer`。

`dwFlags` [in]  
用于修改函数行为的标志。此函数没有标志。

## 返回值
<a name="ksp-library-apis-enum-keys-return-value"></a>

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

常见的返回代码包括：


****  

| 返回代码 | 说明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  操作已成功完成。  | 
|  NTE\$1INVALID\$1PARAMETER  |  一个或多个参数无效。  | 
|  NTE\$1FAIL  |  操作无法完成。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hProvider` 中的句柄无效。  | 
|  NTE\$1NO\$1MORE\$1ITEMS  |  枚举列出了所有可用的密钥。  | 