Arrêt d’une connexion Schannel
Lorsqu’un client ou un serveur a terminé une connexion, il doit l’arrêter. L’autre partie, à son tour, doit reconnaître l’arrêt et supprimer la connexion.
Pour arrêter une connexion Schannel
- Appelez la fonction ApplyControlToken en spécifiant le jeton de contrôle SCHANNEL_SHUTDOWN.
- Après avoir reçu une valeur de retour SEC_E_OK de ApplyControlToken, appelez la fonction InitializeSecurityContext (Schannel) (clients) ou AcceptSecurityContext (Schannel) (serveurs), en passant des mémoires tampons vides.
- Continuez comme si votre application créait une connexion jusqu’à ce que la fonction retourne SEC_I_CONTEXT_EXPIRED ou SEC_E_OK pour indiquer que la connexion est arrêtée.
- Envoyez les informations de sortie finales, le cas échéant, à la partie distante.
- Appelez DeleteSecurityContext pour libérer les ressources détenues par la connexion.
Reconnaissance d’un arrêt
La fonction DecryptMessage (Schannel) retourne SEC_I_CONTEXT_EXPIRED lorsque l’expéditeur du message a arrêté la connexion. Après avoir reçu cette valeur de retour, suivez la procédure Pour arrêter une connexion Schannel, plus haut dans cette rubrique.