Função CryptReleaseContext (wincrypt.h)

Importante Essa API foi preterida. O software novo e existente deve começar a usar APIs de Próxima Geração de Criptografia. A Microsoft pode remover essa API em versões futuras.
 
A função CryptReleaseContext libera o identificador de um CSP ( provedor de serviços criptográficos ) e um contêiner de chaves. Em cada chamada para essa função, a contagem de referência no CSP é reduzida em um. Quando a contagem de referência atinge zero, o contexto é totalmente liberado e não pode mais ser usado por nenhuma função no aplicativo.

Um aplicativo chama essa função depois de concluir o uso do CSP. Depois que essa função é chamada, o identificador CSP liberado não é mais válido. Essa função não destrói contêineres de chave ou pares de chaves.

Sintaxe

BOOL CryptReleaseContext(
  [in] HCRYPTPROV hProv,
  [in] DWORD      dwFlags
);

Parâmetros

[in] hProv

Identificador de um CSP (provedor de serviços criptográficos) criado por uma chamada para CryptAcquireContext.

[in] dwFlags

Reservado para uso futuro e deve ser zero. Se dwFlags não estiver definido como zero, essa função retornará FALSE , mas o CSP será liberado.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError. Alguns códigos de erro possíveis estão listados na tabela a seguir.

Código de retorno Descrição
ERROR_BUSY
O contexto CSP especificado por hProv está sendo usado por outro processo.
ERROR_INVALID_HANDLE
Um dos parâmetros especifica um identificador que não é válido.
ERROR_INVALID_PARAMETER
Um dos parâmetros contém um valor que não é válido. Geralmente, esse é um ponteiro que não é válido.
NTE_BAD_FLAGS
O parâmetro dwFlags é diferente de zero.
NTE_BAD_UID
O parâmetro hProv não contém um identificador de contexto válido.

Comentários

Depois que essa função tiver sido chamada, a sessão do CSP será concluída e todas as chaves de sessão e os objetos hash existentes criados usando o identificador hProv não serão mais válidos. Na prática, todos esses objetos devem ser destruídos com chamadas para CryptDestroyKey e CryptDestroyHash antes que CryptReleaseContext seja chamado.

Exemplos

Para obter um exemplo que usa essa função, consulte Exemplo de programa C: criando e hash de uma chave de sessão.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Cryptacquirecontext

Cryptdestroyhash

Cryptdestroykey

Funções do provedor de serviços