Condividi tramite


Funzione CryptContextAddRef (wincrypt.h)

Importante Questa API è deprecata. Il software nuovo ed esistente deve iniziare a usare API Di nuova generazione di crittografia. Microsoft potrebbe rimuovere questa API nelle versioni future.
 
La funzione di CryptContextAddRef aggiunge uno al conteggio dei riferimenti di un handle HCRYPTPROVdel provider di servizi di crittografia (CSP). Questa funzione deve essere usata se l'handle CSP è incluso come membro di qualsiasi struttura passata a un'altra funzione. La funzione CryptReleaseContext deve essere chiamata quando l'handle CSP non è più necessario.

Sintassi

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

Parametri

[in] hProv

handle di HCRYPTPROV per il quale viene incrementato il del conteggio dei riferimenti . Questo handle deve essere già stato creato usando CryptAcquireContext.

[in] pdwReserved

Riservato per uso futuro e deve essere NULL.

[in] dwFlags

Riservato per uso futuro e deve essere zero.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).

Se la funzione ha esito negativo, il valore restituito è zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError. Un possibile codice di errore è il seguente.

Codice restituito Descrizione
ERROR_INVALID_PARAMETER
Uno dei parametri contiene un valore non valido. Si tratta più spesso di un puntatore non valido.

Osservazioni

Questa funzione aumenta il numero di riferimenti in un handle HCRYPTPROV in modo che siano necessarie più chiamate a CryptReleaseContext per rilasciare effettivamente l'handle.

Esempi

Nell'esempio seguente viene incrementato il conteggio dei riferimenti su un handle CSP acquisito.

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

Per un altro esempio che usa questa funzione, vedere Programma C di esempio: Uso di CryptAcquireContext.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione wincrypt.h
libreria Advapi32.lib
dll Advapi32.dll

Vedere anche

CryptAcquireContext

CryptReleaseContext

funzioni del provider di servizi