다음을 통해 공유


Schannel 연결 종료

클라이언트 또는 서버가 연결로 완료되면 클라이언트 또는 서버가 종료되어야 합니다. 다른 당사자는 종료를 인식하고 연결을 삭제해야 합니다.

Schannel 연결을 종료하려면

  1. applyControlToken 함수를 호출하여 SCHANNEL_SHUTDOWN 컨트롤 토큰을 지정합니다.
  2. ApplyControlToken에서 SEC_E_OK 반환 값을 받은 후 InitializeSecurityContext(Schannel) (클라이언트) 또는 AcceptSecurityContext(Schannel) (서버) 함수를 호출하여 빈 버퍼를 전달합니다.
  3. 함수가 SEC_I_CONTEXT_EXPIRED 반환하거나 SEC_E_OK 연결이 종료되었음을 나타낼 때까지 애플리케이션이 새 연결을 만드는 것처럼 진행합니다.
  4. 최종 출력 정보(있는 경우)를 원격 당사자에게 보냅니다.
  5. DeleteSecurityContext를 호출하여 연결에서 보유한 리소스를 해제합니다.

종료 인식

DecryptMessage(Schannel) 함수는 메시지 발신자가 연결을 종료하면 SEC_I_CONTEXT_EXPIRED 반환합니다. 이 반환 값을 받은 후 이 항목의 앞부분에 있는 Schannel 연결을 종료하려면 절차를 따릅니다.