NCryptEnumKeys 関数 (ncrypt.h)
NCryptEnumKeys 関数は、プロバイダーによって格納されるキーの名前を取得します。
構文
SECURITY_STATUS NCryptEnumKeys(
[in] NCRYPT_PROV_HANDLE hProvider,
[in, optional] LPCWSTR pszScope,
[out] NCryptKeyName **ppKeyName,
[in, out] PVOID *ppEnumState,
[in] DWORD dwFlags
);
パラメーター
[in] hProvider
キーを列挙するキー ストレージ プロバイダーのハンドル。 このハンドルは、 NCryptOpenStorageProvider 関数を使用して取得されます。
[in, optional] pszScope
このパラメーターは現在使用されていないため、 NULL である必要があります。
[out] ppKeyName
取得したキーの名前を受け取る NCryptKeyName 構造体へのポインターのアドレス。 このメモリの使用が完了したら、 NCryptFreeBuffer 関数を呼び出して解放します。
[in, out] ppEnumState
この関数の後続の呼び出しで使用される列挙状態情報を受け取る VOID ポインターのアドレス。 この情報はキー ストレージ プロバイダーに対してのみ意味があり、呼び出し元には不透明です。 キー ストレージ プロバイダーは、この情報を使用して、列挙体の次の項目を決定します。 このパラメーターが指す変数に NULL が含まれている場合、列挙は最初から開始されます。
このメモリが不要になったら、このポインターを NCryptFreeBuffer 関数に渡すことによって解放する必要があります。
[in] dwFlags
関数の動作を変更するフラグ。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。
戻り値
関数の成功または失敗を示す状態コードを返します。
可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
関数は成功しました。 |
|
dwFlags パラメーターに無効な値が含まれています。 |
|
hProvider パラメーターが無効です。 |
|
1 つ以上のパラメーターが無効です。 |
|
メモリ割り当てエラーが発生しました。 |
|
列挙体の末尾に達しました。 |
|
dwFlags パラメーターには NCRYPT_SILENT_FLAG フラグが含まれていますが、列挙されるキーにはユーザー操作が必要です。 |
注釈
この関数は、呼び出されるたびに 1 つの項目のみを取得します。 列挙体の状態は 、ppEnumState パラメーターが指す変数に格納されるため、この関数の呼び出し間で保持する必要があります。 プロバイダーによって格納された最後のキーが取得されると、この関数は次回呼び出 されたときにNTE_NO_MORE_ITEMS を返します。 列挙を開始するには、 ppEnumState パラメーターが指す変数を NULL に設定し、 ppKeyName パラメーターが指すメモリが NULL でない場合は解放し、この関数を再度呼び出します。
サービスは 、StartService 関数からこの関数を呼び出してはなりません。 サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答を停止する可能性があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | ncrypt.h |
Library | Ncrypt.lib |
[DLL] | Ncrypt.dll |