Compartilhar via


Desligando uma conexão Schannel

Quando um cliente ou servidor é concluído com uma conexão, ele deve desligá-lo. A outra parte, por sua vez, deve reconhecer o desligamento e excluir a conexão.

Para desligar uma conexão Schannel

  1. Chame a função ApplyControlToken , especificando o token de controle SCHANNEL_SHUTDOWN.
  2. Depois de receber um valor retornado SEC_E_OK de ApplyControlToken, chame a função InitializeSecurityContext (Schannel) (clientes) ou AcceptSecurityContext (Schannel) (servidores), passando buffers vazios.
  3. Continue como se seu aplicativo estivesse criando uma nova conexão até que a função retorne SEC_I_CONTEXT_EXPIRED ou SEC_E_OK para indicar que a conexão foi desligada.
  4. Envie as informações de saída finais, se houver, para a parte remota.
  5. Chame DeleteSecurityContext para liberar recursos mantidos pela conexão.

Reconhecendo um desligamento

A função DecryptMessage (Schannel) retorna SEC_I_CONTEXT_EXPIRED quando o remetente da mensagem desliga a conexão. Depois de receber esse valor retornado, siga o procedimento Para desligar uma conexão Schannel, anteriormente neste tópico.