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 インターフェイス識別子のいずれかである必要があります。
[in, optional] pszFunction
プロバイダーがサポートする必要があるアルゴリズムまたは関数識別子を含む null で終わる Unicode 文字列へのポインター。 これは、標準 CNG アルゴリズム識別子 のいずれか、または別の登録済みアルゴリズムの識別子です。 dwInterface
[in, optional] pszProvider
取得するプロバイダーの名前を含む null で終わる Unicode 文字列へのポインター。 このパラメーターが NULL
このパラメーターを使用すると、複数のプロバイダーが他の条件を満たす場合に取得する特定のプロバイダーを指定できます。
[in] dwMode
取得するプロバイダーの種類を指定します。 次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
|
ユーザー モード プロバイダーを取得します。 |
|
カーネル モード プロバイダーを取得します。 |
|
ユーザー モードプロバイダーとカーネル モード プロバイダーの両方を取得します。 |
[in] dwFlags
この関数の動作を変更するフラグのセット。
0 または次の 1 つ以上の値の組み合わせを指定できます。
[in, out] pcbBuffer
エントリ上で、ppBuffer パラメーターが指すバッファーのサイズ (バイト単位) を含む DWORD 値へのポインター。 終了時に、この値はバッファーにコピーされたバイト数またはバッファーの必要なサイズ (バイト単位) を受け取ります。
[in, out] ppBuffer
指定した条件を満たすプロバイダーのコレクションを受け取る CRYPT_PROVIDER_REFS ポインターのアドレス。
このパラメーターが NULL
このパラメーターが NULL ポインターのアドレスである場合、この関数は必要なメモリを割り当て、プロバイダーに関する情報をメモリに格納し、このパラメーターにこのメモリへのポインターを配置します。 このメモリの使用が完了したら、このポインターを BCryptFreeBuffer 関数に渡して解放します。
このパラメーターが非NULL ポインターのアドレスである場合、この関数はプロバイダー情報をこのバッファーにコピーします。 pcbBuffer パラメーターには、バッファー全体のサイズ (バイト単位) が含まれている必要があります。 バッファーがすべてのプロバイダー情報を保持するのに十分な大きさでない場合、この関数は STATUS_BUFFER_TOO_SMALLを返します。
戻り値
関数の成功または失敗を示す状態コードを返します。
可能な戻りコードには、以下が含まれますが、これらに限定されません。
リターン コード | 形容 |
---|---|
|
関数が成功しました。 |
|
pcbBuffer パラメーターで指定されたサイズは、すべてのデータを保持するのに十分な大きさではありません。 |
|
1 つ以上のパラメーターが無効です。 |
|
指定されたすべての条件を満たすプロバイダーが見つかりませんでした。 |
備考
BCryptResolveProviders は、ユーザー モードまたはカーネル モードから呼び出すことができます。 カーネル モードの呼び出し元は、PASSIVE_LEVELIRQLで実行されている必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2008 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | bcrypt.h |
ライブラリ | Bcrypt.lib |
DLL | Bcrypt.dll |