CryptContextAddRef 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptContextAddRef 関数は、HCRYPTPROV暗号化サービス プロバイダー (CSP) ハンドルの参照カウントに 1 つを追加します。 この関数は、CSP ハンドルが別の関数に渡される構造体のメンバーとして含まれている場合に使用する必要があります。 CSP ハンドルが不要になった場合は、 CryptReleaseContext 関数を呼び出す必要があります。

構文

BOOL CryptContextAddRef(
  [in] HCRYPTPROV hProv,
  [in] DWORD      *pdwReserved,
  [in] DWORD      dwFlags
);

パラメーター

[in] hProv

参照カウントがインクリメントされる HCRYPTPROV ハンドル。 このハンドルは、 CryptAcquireContext を使用して既に作成されている必要があります。

[in] pdwReserved

将来使用するために予約されており、 NULL である必要があります。

[in] dwFlags

将来使用するために予約されており、0 である必要があります。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります。

関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの 1 つは次のとおりです。

リターン コード 説明
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これはほとんどの場合、無効なポインターです。

解説

この関数は、HCRYPTPROV ハンドルの参照カウントを増やして、実際にハンドルを解放するために CryptReleaseContext への複数の呼び出しが必要になるようにします。

次の例では、取得した CSP ハンドルの 参照カウント をインクリメントします。

//--------------------------------------------------------------------
// hCryptProv is a HCRYPTPROV variable that was previously acquired
// by using CryptAcquireContext or CryptAcquireCertificatePrivateKey.

if(CryptContextAddRef(
       hCryptProv, 
       NULL, 
       0)) 
{
    printf("CryptContextAddRef succeeded. \n");
}
else
{
   printf("Error during CryptContextAddRef!\n");
   exit(1);
}
//--------------------------------------------------------------------
//  The reference count on hCryptProv is now greater than one. The 
//  first call to CryptReleaseContext will not release the provider 
//  handle. A second call to CryptReleaseContext would be needed to 
//  release the context.

この関数を使用する別の例については、「 サンプル C プログラム: CryptAcquireContext の使用」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

CryptAcquireContext

CryptReleaseContext

サービス プロバイダー関数