Función CryptContextAddRef (wincrypt.h)

Importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
La función CryptContextAddRef agrega uno al recuento de referencias de un identificador de proveedor de servicios criptográficos (CSP) HCRYPTPROV. Esta función se debe usar si el identificador de CSP se incluye como miembro de cualquier estructura que se pasa a otra función. Se debe llamar a la función CryptReleaseContext cuando ya no se necesite el identificador de CSP.

Sintaxis

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

Parámetros

[in] hProv

Identificador HCRYPTPROV para el que se incrementa el recuento de referencias . Este identificador ya debe haberse creado con CryptAcquireContext.

[in] pdwReserved

Reservado para uso futuro y debe ser NULL.

[in] dwFlags

Reservado para uso futuro y debe ser cero.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError. Un posible código de error es el siguiente.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
Uno de los parámetros contiene un valor que no es válido. Suele ser un puntero que no es válido.

Comentarios

Esta función aumenta el recuento de referencias en un identificador HCRYPTPROV para que se necesiten varias llamadas a CryptReleaseContext para liberar realmente el identificador.

Ejemplos

En el ejemplo siguiente se incrementa el recuento de referencias en un identificador de CSP adquirido.

//--------------------------------------------------------------------
// 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.

Para obtener otro ejemplo que use esta función, vea Programa C de ejemplo: Uso de CryptAcquireContext.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

CryptAcquireContext

CryptReleaseContext

Funciones del proveedor de servicios