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
- Chame a função ApplyControlToken , especificando o token de controle SCHANNEL_SHUTDOWN.
- 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.
- 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.
- Envie as informações de saída finais, se houver, para a parte remota.
- 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.