Schannel 연결 종료
클라이언트 또는 서버가 연결로 완료되면 클라이언트 또는 서버가 종료되어야 합니다. 다른 당사자는 종료를 인식하고 연결을 삭제해야 합니다.
Schannel 연결을 종료하려면
- applyControlToken 함수를 호출하여 SCHANNEL_SHUTDOWN 컨트롤 토큰을 지정합니다.
- ApplyControlToken에서 SEC_E_OK 반환 값을 받은 후 InitializeSecurityContext(Schannel) (클라이언트) 또는 AcceptSecurityContext(Schannel) (서버) 함수를 호출하여 빈 버퍼를 전달합니다.
- 함수가 SEC_I_CONTEXT_EXPIRED 반환하거나 SEC_E_OK 연결이 종료되었음을 나타낼 때까지 애플리케이션이 새 연결을 만드는 것처럼 진행합니다.
- 최종 출력 정보(있는 경우)를 원격 당사자에게 보냅니다.
- DeleteSecurityContext를 호출하여 연결에서 보유한 리소스를 해제합니다.
종료 인식
DecryptMessage(Schannel) 함수는 메시지 발신자가 연결을 종료하면 SEC_I_CONTEXT_EXPIRED 반환합니다. 이 반환 값을 받은 후 이 항목의 앞부분에 있는 Schannel 연결을 종료하려면 절차를 따릅니다.