Dela via


Stänga av en kanalanslutning

När en klient eller server är klar med en anslutning måste den stängas av. Den andra parten måste i sin tur känna igen avstängningen och ta bort anslutningen.

Stänga av en Schannel-anslutning

  1. Anropa funktionen ApplyControlToken och ange SCHANNEL_SHUTDOWN kontrolltoken.
  2. När du har fått ett SEC_E_OK returvärde från ApplyControlTokenanropar du funktionen InitializeSecurityContext (Schannel) (klienter) eller AcceptSecurityContext (Schannel) (servrar) och skickar tomma buffertar.
  3. Fortsätt som om programmet skapade en ny anslutning tills funktionen returnerar SEC_I_CONTEXT_EXPIRED eller SEC_E_OK för att indikera att anslutningen har stängts av.
  4. Skicka eventuell slutlig utdatainformation till fjärrparten.
  5. Anropa DeleteSecurityContext för att frigöra resurser som finns i anslutningen.

Känna igen en avstängning

Funktionen DecryptMessage (Schannel) returnerar SEC_I_CONTEXT_EXPIRED när meddelandesändaren har stängt av anslutningen. När du har fått det här returvärdet, följ proceduren tidigare i det här avsnittet för att stänga av en Schannel-anslutning.