BCryptQueryProviderRegistration 関数 (bcrypt.h)

BCryptQueryProviderRegistration 関数は、CNG プロバイダーに関する情報を取得します。

構文

NTSTATUS BCryptQueryProviderRegistration(
  [in]      LPCWSTR             pszProvider,
  [in]      ULONG               dwMode,
  [in]      ULONG               dwInterface,
  [in, out] ULONG               *pcbBuffer,
  [in, out] PCRYPT_PROVIDER_REG *ppBuffer
);

パラメーター

[in] pszProvider

情報を取得するプロバイダーの名前を含む null で終わる Unicode 文字列へのポインター。

[in] dwMode

取得する情報の種類を指定します。 次のいずれかの値を指定できます。

意味
CRYPT_ANY
プロバイダーの情報を取得します。
CRYPT_UM
プロバイダーのユーザー モード情報を取得します。
CRYPT_KM
プロバイダーのカーネル モード情報を取得します。
CRYPT_MM
プロバイダーのユーザー モードとカーネル モードの両方の情報を取得します。

[in] dwInterface

情報を取得するインターフェイスを指定します。 次のいずれかの値を指定できます。

意味
BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE
非対称暗号化インターフェイスを取得します。
BCRYPT_CIPHER_INTERFACE
暗号インターフェイスを取得します。
BCRYPT_HASH_INTERFACE
ハッシュ インターフェイスを取得します。
NCRYPT_KEY_STORAGE_INTERFACE
キー ストレージ インターフェイスを取得します。
BCRYPT_RNG_INTERFACE
乱数ジェネレーター インターフェイスを取得します。
NCRYPT_SCHANNEL_INTERFACE
Schannel インターフェイスを取得します。
BCRYPT_SECRET_AGREEMENT_INTERFACE
シークレット 契約インターフェイスを取得します。
BCRYPT_SIGNATURE_INTERFACE
署名インターフェイスを取得します。

[in, out] pcbBuffer

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

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

[in, out] ppBuffer

CRYPT_PROVIDER_REG構造体とプロバイダーを記述するその他のデータを受け取るバッファー ポインターへのポインター。

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

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

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

戻り値

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

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

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

注釈

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

要件

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

こちらもご覧ください

BCryptFreeBuffer

CRYPT_PROVIDER_REG