Отключение подключения Schannel
После завершения работы клиента или сервера с подключением он должен завершить работу. Другая сторона, в свою очередь, должна распознать завершение работы и удалить подключение.
Отключить подключение Schannel
- Вызовите функцию ApplyControlToken, указав управляющий токен SCHANNEL_SHUTDOWN.
- Получив SEC_E_OK возвращаемое значение из ApplyControlToken, вызовите функцию(серверы)InitializeSecurityContext (Schannel) (клиенты) илифункцию AcceptSecurityContext (Schannel) (серверы), передавая пустые буферы.
- Продолжайте, как если бы приложение создавало новое подключение, пока функция не возвращает SEC_I_CONTEXT_EXPIRED или SEC_E_OK, чтобы указать, что подключение завершается.
- Отправьте окончательные выходные данные, если таковые есть, в удаленную сторону.
- Вызовите DeleteSecurityContext, чтобы освободить ресурсы, занятые соединением.
Распознавание завершения работы
Функция DecryptMessage (Schannel) возвращает SEC_I_CONTEXT_EXPIRED при завершении подключения отправителем сообщения. После получения этого возвращаемого значения следуйте процедуре завершения подключения Schannel, описанной ранее в этом разделе.