Compartir a través de


Función CryptContextAddRef (wincrypt.h)

importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API de Cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
La función CryptContextAddRef agrega una a la de recuento de referencias de de un controlador de HCRYPTPROVproveedor de servicios criptográficos (CSP). Esta función debe usarse si el identificador 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 de HCRYPTPROV para el que se está incrementando el de recuento de referencias de . Este identificador ya debe haberse creado mediante 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 código de error posible 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.

Observaciones

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

Ejemplos

En el ejemplo siguiente se incrementa el número de referencias de en un identificador 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

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wincrypt.h
biblioteca de Advapi32.lib
DLL de Advapi32.dll

Consulte también

CryptAcquireContext

CryptReleaseContext

funciones del proveedor de servicios de