BCryptResolveProviders 関数 (bcrypt.h)
BCryptResolveProviders 関数は、指定された条件を満たすすべてのプロバイダーのコレクションを取得します。
構文
NTSTATUS BCryptResolveProviders(
[in, optional] LPCWSTR pszContext,
[in, optional] ULONG dwInterface,
[in, optional] LPCWSTR pszFunction,
[in, optional] LPCWSTR pszProvider,
[in] ULONG dwMode,
[in] ULONG dwFlags,
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDER_REFS *ppBuffer
);
パラメーター
[in, optional] pszContext
プロバイダーを取得するコンテキストの識別子を含む null で終わる Unicode 文字列へのポインター。 これが NULL または空の文字列に設定されている場合、既定のコンテキストが想定されます。
[in, optional] dwInterface
プロバイダーがサポートする必要があるインターフェイスの識別子。 これは 、CNG インターフェイス識別子のいずれかである必要があります。 pszFunction パラメーターが NULL または空の文字列でない場合は、dwInterface を 0 に設定して、関数がインターフェイスを推論するように強制できます。
[in, optional] pszFunction
プロバイダーがサポートする必要があるアルゴリズムまたは関数識別子を含む null で終わる Unicode 文字列へのポインター。 これには、標準の CNG アルゴリズム識別子 の 1 つ、または別の登録済みアルゴリズムの識別子を指定できます。 dwInterface が 0 以外の値に設定されている場合、pszFunctionを NULL にして、すべてのアルゴリズムと関数を含めることができます。
[in, optional] pszProvider
取得するプロバイダーの名前を含む null で終わる Unicode 文字列へのポインター。 このパラメーターが NULL の場合、すべてのプロバイダーが含まれます。
このパラメーターを使用すると、複数のプロバイダーが他の条件を満たす場合に取得する特定のプロバイダーを指定できます。
[in] dwMode
取得するプロバイダーの種類を指定します。 次のいずれかの値を指定できます。
値 | 意味 |
---|---|
|
ユーザー モード プロバイダーを取得します。 |
|
カーネル モード プロバイダーを取得します。 |
|
ユーザー モードとカーネル モード プロバイダーの両方を取得します。 |
[in] dwFlags
この関数の動作を変更するフラグのセット。
これは、0 または次の値の 1 つ以上の組み合わせにすることができます。
[in, out] pcbBuffer
エントリ時に、ppBuffer パラメーターが指すバッファーのサイズ (バイト単位) を含む DWORD 値へのポインター。 終了時に、この値はバッファーにコピーされたバイト数、またはバッファーの必要なサイズ (バイト単位) を受け取ります。
[in, out] ppBuffer
指定した 条件を満 たすプロバイダーのコレクションを受け取るCRYPT_PROVIDER_REFS ポインターのアドレス。
このパラメーターが NULL の場合、この関数は STATUS_SUCCESS を返し、すべてのデータの必要なサイズ (バイト単位) である pcbBuffer パラメーターが指す値を格納します。
このパラメーターが NULL ポインターのアドレスの場合、この関数は必要なメモリを割り当て、プロバイダーに関する情報をメモリに入力し、このパラメーターにこのメモリへのポインターを配置します。 このメモリの使用が完了したら、このポインターを BCryptFreeBuffer 関数に渡して解放します。
このパラメーターが NULL 以外のポインターのアドレスである場合、この関数はプロバイダー情報をこのバッファーにコピーします。 pcbBuffer パラメーターには、バッファー全体のサイズ (バイト単位) が含まれている必要があります。 バッファーがすべてのプロバイダー情報を保持するのに十分な大きさでない場合、この関数は STATUS_BUFFER_TOO_SMALLを返します。
戻り値
関数の成功または失敗を示す状態コードを返します。
可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
関数は成功しました。 |
|
pcbBuffer パラメーターで指定されたサイズは、すべてのデータを保持するのに十分な大きさではありません。 |
|
1 つ以上のパラメーターが無効です。 |
|
指定されたすべての条件を満たすプロバイダーが見つかりませんでした。 |
注釈
BCryptResolveProviders は、ユーザー モードまたはカーネル モードから呼び出すことができます。 カーネル モードの呼び出し元は、PASSIVE_LEVEL IRQL で実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | bcrypt.h |
Library | Bcrypt.lib |
[DLL] | Bcrypt.dll |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示