PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE
コールバックシグネチャ
BOOL PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE(
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH pfnFlush,
void* pContext,
DWORD* pdwExpectedObjectCount,
CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE** ppFuncTable,
void** ppPluginContext
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| pfnFlush | PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH | PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH 関数の実装へのポインターです。 |
| pContext | void* | プロバイダーとオブジェクトに関する情報を格納する、プロバイダー定義のオブジェクトへのポインターです。 |
| pdwExpectedObjectCount | DWORD* | プロバイダーが特定すると見込まれる一意のオブジェクトの数を指定します。この値は、オブジェクトを格納するためにどれだけのメモリを割り当てるかを呼び出し元に伝えます。既定値である 10,000 個のオブジェクトを指定するには、この値をゼロ (0) に設定します。 |
| ppFuncTable | CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE** | プロバイダーが実装する関数へのポインターを格納する CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE 構造体です。テーブル内のポインターを NULL にすることはできません。呼び出し元はこの構造体を解放しません。プロバイダーは、ヒープ上に割り当てられていないテーブルを返すことが想定されています。 - **ppPluginContext [out]このプロバイダーが定義する省略可能なバッファーへのポインターです。このバッファーが呼び出し元によって変更されることはありません。プロバイダーは、実行する処理の判断や追加情報の保持のためにこのデータを使用できます。この値は NULL に設定できます。 |
| ppPluginContext | void** | このプロバイダーが定義する省略可能なバッファーへのポインターです。このバッファーが呼び出し元によって変更されることはありません。プロバイダーは、実行する処理の判断や追加情報の保持のためにこのデータを使用できます。この値は NULL に設定できます。 |
公式ドキュメント
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE 関数は、プロバイダーを初期化します。この関数は、カスタム プロバイダーの一部として実装する必要があります。
戻り値
関数が成功した場合は、0 以外の値 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返し、SetLastError 関数で適切なエラーを設定します。ほとんどのエラーは Schannel をそのまま通過しますが、この動作は保証されません。一部のエラーは別のエラーにマップされる場合があります。
解説(Remarks)
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE 関数は、現在のところ Secure Channel (Schannel) セキュリティ サポート プロバイダー (SSP) からのみ呼び出されます。Windows 8 以降で AcquireCredentialsHandle 関数の pszPrincipal パラメーターにセキュリティ プリンシパルの名前を指定すると、暗号化 API (CAPI) が内部的にカスタム プロバイダーを呼び出します。
この関数を実装する際は、CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE 関数テーブルに、プロバイダーが実装する次の関数へのポインターを設定することを忘れないでください。
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)