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 つ以上の組み合わせにすることができます。

意味
NCRYPT_MACHINE_KEY_FLAG
ローカル コンピューターのキーを列挙します。 このフラグが存在しない場合、現在のユーザー キーが列挙されます。
NCRYPT_SILENT_FLAG
キー サービス プロバイダー (KSP) にユーザー インターフェイスが表示されないことを要求します。 プロバイダーが操作する UI を表示する必要がある場合、呼び出しは失敗し、KSP は NTE_SILENT_CONTEXT エラー コードを最後のエラーとして設定する必要があります。

戻り値

関数の成功または失敗を示す状態コードを返します。

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターに無効な値が含まれています。
NTE_INVALID_HANDLE
hProvider パラメーターが無効です。
NTE_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
NTE_NO_MEMORY
メモリ割り当てエラーが発生しました。
NTE_NO_MORE_ITEMS
列挙体の末尾に達しました。
NTE_SILENT_CONTEXT
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