Win32 API 日本語リファレンス
ホーム › Security.Cryptography › BCryptGetPropertyFn

BCryptGetPropertyFn

コールバック

シグネチャ

NTSTATUS BCryptGetPropertyFn(
    BCRYPT_HANDLE hObject,
    LPWSTR pszProperty,
    BYTE* pbOutput,
    DWORD cbOutput,
    DWORD* pcbResult,
    DWORD dwFlags
);

パラメーター

フィールド型説明
hObjectBCRYPT_HANDLEプロパティ値を取得する対象の CNG オブジェクトを表すハンドルです。
pszPropertyLPWSTR取得するプロパティの名前を格納した、null で終わる Unicode 文字列へのポインターです。定義済みの 暗号化プリミティブのプロパティ識別子 のいずれか、またはカスタムのプロパティ識別子を指定できます。
pbOutputBYTE*プロパティ値を受け取るバッファーのアドレスです。cbOutput パラメーターには、このバッファーのサイズを指定します。
cbOutputDWORDpbOutput バッファーのサイズ (バイト単位) です。
pcbResultDWORD*pbOutput バッファーにコピーされたバイト数を受け取る ULONG 変数へのポインターです。pbOutput パラメーターが NULL の場合、この関数は必要なサイズ (バイト単位) をこのパラメーターが指す場所に格納します。
dwFlagsDWORDこの関数の動作を変更するフラグのセットです。この関数に対して定義されているフラグはありません。

公式ドキュメント

BCryptGetProperty 関数は、CNG オブジェクトの名前付きプロパティの値を取得します。

戻り値

関数の成功または失敗を示すステータスコードを返します。

返される可能性のあるコードには、次のものが含まれます (ただし、これらに限定されません)。

戻り値 説明
STATUS_SUCCESS 関数は成功しました。
STATUS_BUFFER_TOO_SMALL cbOutput パラメーターで指定されたバッファーのサイズが、プロパティ値を格納するには足りません。
STATUS_INVALID_HANDLE hObject パラメーターのハンドルが無効です。
STATUS_INVALID_PARAMETER 1 つ以上のパラメーターが無効です。
STATUS_NOT_SUPPORTED pszProperty パラメーターで指定されたプロパティはサポートされていません。

解説(Remarks)

プロパティに必要なサイズを取得するには、pbOutput パラメーターに NULL を渡します。この関数は、必要なサイズ (バイト単位) を pcbResult パラメーターが指す値に格納します。

サポートされているアルゴリズムプロバイダーを使用する場合、BCryptGetProperty はユーザーモードとカーネルモードのどちらからでも呼び出せます。カーネルモードの呼び出し元は、PASSIVE_LEVEL IRQL または DISPATCH_LEVEL IRQL のいずれでも実行できます。現在の IRQL レベルが DISPATCH_LEVEL の場合、BCryptGetProperty 関数に渡すポインターは、ページングされない (またはロックされた) メモリを参照している必要があります。hObject パラメーターで指定したオブジェクトがハンドルである場合、そのハンドルは BCRYPT_PROV_DISPATCH フラグを使用して開かれている必要があります。

この関数をカーネルモードで呼び出すには、Driver Development Kit (DDK) に含まれる Cng.lib を使用します。Windows Server 2008 および Windows Vista: この関数をカーネルモードで呼び出すには、Ksecdd.lib を使用します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)