BCryptEnumRegisteredProviders 関数 (bcrypt.h)

BCryptEnumRegisteredProviders 関数は、登録済みプロバイダーに関する情報を取得します。

構文

NTSTATUS BCryptEnumRegisteredProviders(
  [in, out] ULONG            *pcbBuffer,
  [in, out] PCRYPT_PROVIDERS *ppBuffer
);

パラメーター

[in, out] pcbBuffer

入力時に ppBuffer パラメーターが指すバッファーのサイズ (バイト単位) を含む ULONG 値へのポインター。 終了時に、この値はバッファーにコピーされたバイト数、またはバッファーの必要なサイズ (バイト単位) を受け取ります。

メモ これは、 CRYPT_PROVIDERS 構造体のサイズだけでなく、バッファー全体の合計サイズ (バイト単位) です。 バッファーは、 CRYPT_PROVIDERS 構造に加えて、プロバイダーの他のデータを保持できる必要があります。
 

[in, out] ppBuffer

CRYPT_PROVIDERS構造体と、登録済みプロバイダーのコレクションを記述するその他のデータを受け取るバッファー ポインターへのポインター。

このパラメーターが NULL の場合、この関数は STATUS_BUFFER_TOO_SMALL を返し、すべてのデータの必要なサイズ (バイト単位) である pcbBuffer パラメーターが指す値を格納します。

このパラメーターが NULL ポインターのアドレスである場合、この関数は必要なメモリを割り当て、プロバイダーに関する情報をメモリに入力し、このパラメーターにこのメモリへのポインターを配置します。 このメモリの使用が完了したら、このポインターを BCryptFreeBuffer 関数に渡して解放します。

このパラメーターが NULL 以外のポインターのアドレスである場合、この関数はプロバイダー情報をこのバッファーにコピーします。 pcbBuffer パラメーターには、バッファー全体のサイズ (バイト単位) が含まれている必要があります。 バッファーがすべてのプロバイダー情報を保持するのに十分な大きさでない場合、この関数は STATUS_BUFFER_TOO_SMALLを返します。

戻り値

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

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

リターン コード 説明
STATUS_SUCCESS
関数は成功しました。
STATUS_BUFFER_TOO_SMALL
pcbBuffer パラメーターで指定されたサイズは、すべてのデータを保持するのに十分な大きさではありません。
STATUS_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。

注釈

BCryptEnumRegisteredProviders 関数は、次の 2 つの方法のいずれかで呼び出すことができます。

  • 1 つ目は、 BCryptEnumRegisteredProviders 関数に メモリを割り当てることです。 これは、ppBuffer パラメーターの NULL ポインターのアドレスを渡すことによって実現されます。

    次の例は、BCryptEnumRegisteredProviders 関数を使用して、ppBuffer パラメーターに NULL ポインターのアドレスを渡すことによってメモリを割り当てる方法を示しています。

    PCRYPT_PROVIDERS pBuffer = NULL;
    BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
    
    
    

    このコードは、 CRYPT_PROVIDERS 構造体と関連付けられた文字列に必要なメモリを割り当てます。 この方法で BCryptEnumRegisteredProviders 関数を使用する場合は、 ppBufferBCryptFreeBuffer 関数に渡すことによって不要になったときにメモリを解放する必要があります。

  • 2 つ目の方法は、必要なメモリを自分で割り当てることです。 これを行うには、ppBuffer パラメーターに NULL を指定して BCryptEnumRegisteredProviders 関数を呼び出します。 BCryptEnumRegisteredProviders 関数は、pcbBuffer パラメーターによって指される値、必要なサイズ (バイト単位) のCRYPT_PROVIDERS構造体とすべての文字列に配置されます。 次に、BCryptEnumRegisteredProviders 関数の 2 回目の呼び出しで、必要なメモリを割り当て、ppBuffer パラメーターのこのバッファー ポインターのアドレスを渡します。

BCryptEnumRegisteredProviders は、ユーザー モードでのみ呼び出すことができます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー bcrypt.h
Library Bcrypt.lib
[DLL] Bcrypt.dll

こちらもご覧ください

BCryptFreeBuffer

CRYPT_PROVIDERS