Apagar una conexión Schannel
Cuando un cliente o servidor finaliza con una conexión, debe apagarlo. La otra parte, a su vez, debe reconocer el apagado y eliminar la conexión.
Para apagar una conexión Schannel
- Llame a la función ApplyControlToken y especifique el token de control de SCHANNEL_SHUTDOWN.
- Después de recibir un valor devuelto SEC_E_OK de ApplyControlToken, llame a la función InitializeSecurityContext (Schannel) (clientes) o AcceptSecurityContext (Schannel) ( servidores), pasando búferes vacíos.
- Continúe como si la aplicación estuviera creando una nueva conexión hasta que la función devuelva SEC_I_CONTEXT_EXPIRED o SEC_E_OK para indicar que la conexión está apagada.
- Envíe la información de salida final, si existe, a la parte remota.
- Llame a DeleteSecurityContext para liberar recursos mantenidos por la conexión.
Reconocimiento de un apagado
La función DecryptMessage (Schannel) devuelve SEC_I_CONTEXT_EXPIRED cuando el remitente del mensaje ha apagado la conexión. Después de recibir este valor devuelto, siga el procedimiento Para apagar una conexión Schannel, anteriormente en este tema.