Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This function adds one to the reference count of an HCRYPTPROV handle.
BOOL WINAPI CryptContextAddRef( HCRYPTPROV hProv,DWORD* pdwReserved, DWORD dwFlags);
Parameters
- hProv
[in] HCRYPTPROV handle to a cryptographic service provider (CSP) created by a call to the CryptAcquireContext function for which the reference count is being incremented. - pdwReserved
[in] Reserved for future use and must be set to NULL. - dwFlags
[in] Reserved for future use and must be set to zero.
Return Values
TRUE indicates success. FALSE indicates failure. To get extended error information, call the GetLastError function.
A common value for GetLastError is ERROR_INVALID_PARAMETER. It means that one of the parameters contain an invalid value, which is often an illegal pointer.
Remarks
This function should be used if the CSP handle is included as a member of any structure passed to another function. The CryptReleaseContext function should be called when the CSP handle is no longer needed.
This function increases the reference count of a HCRYPTPROV handle; therefore, multiple calls to the CryptReleaseContext function are required to actually free the handle.
Example Code
HCRYPTPROV hProv = 0;
// Acquire a context handle using CryptAcquireContext
// For sample code, see CryptAcquireContext.
...
if (!CryptContextAddRef(&hProv, NULL, 0)) {
printf("Error %x during CryptContextAddRef!\n", GetLastError);
return;
}
...
// The first call to CryptReleaseContext will not free the provider
// handle because the reference count has been bumped up.
if (!CryptReleaseContext(hProv, 0)) {
printf("Error %x during CryptReleaseContext!\n", GetLastError);
return;
}
// Free the provider handle.
if (!CryptReleaseContext(hProv, 0)) {
printf("Error %x during CryptReleaseContext!\n", GetLastError);
return;
}
Requirements
OS Versions: Windows CE 2.10 and later.
Header: Wincrypt.h.
Link Library: Coredll.lib.
See Also
CryptAcquireContext | CryptReleaseContext | HCRYPTPROV
Send Feedback on this topic to the authors