共用方式為


CryptContextAddRef 函式 (wincrypt.h)

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 在未來版本中可能會移除此 API。
 
CryptContextAddRef 函式會將一個新增至 HCRYPTPROV密碼編譯服務提供者 (CSP) 句柄的 參考 計數。 如果 CSP 句柄包含為傳遞至另一個函式之任何結構的成員,則應該使用此函式。 當不再需要 CSP 句柄時,應該呼叫 CryptReleaseContext 函式。

語法

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

參數

[in] hProv

HCRYPTPROV 句柄,參考計數 遞增。 這個句柄必須使用 cryptAcquireContext建立。

[in] pdwReserved

保留供日後使用,且必須 NULL

[in] dwFlags

保留供日後使用,且必須是零。

傳回值

如果函式成功,則傳回值為非零值(TRUE)。

如果函式失敗,傳回值為零 (FALSE)。 如需擴充錯誤資訊,請呼叫 getLastError。 其中一個可能的錯誤碼如下。

傳回碼 描述
ERROR_INVALID_PARAMETER
其中一個參數包含無效的值。 這通常是無效的指標。

言論

此函式會增加 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 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Advapi32.lib
DLL Advapi32.dll

另請參閱

CryptAcquireContext

CryptReleaseContext

Service Provider Functions