Функция WsCloseChannel (webservices.h)
Закрывает указанный канал.
Синтаксис
HRESULT WsCloseChannel(
[in] WS_CHANNEL *channel,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
Параметры
[in] channel
Указатель на структуру WS_CHANNEL , представляющую закрываемого канала.
[in, optional] asyncContext
Указатель на структуру данных WS_ASYNC_CONTEXT , содержащую сведения для асинхронного вызова функции. Передайте значение NULL для синхронного вызова функции.
[in, optional] error
Указатель на структуру WS_ERROR , в которой хранятся дополнительные сведения об ошибках в случае сбоя функции.
Возвращаемое значение
Если функция выполняется успешно, она возвращает NO_ERROR; В противном случае возвращается код ошибки HRESULT.
Код возврата | Описание |
---|---|
|
Асинхронная операция по-прежнему находится в состоянии ожидания. |
|
Закрытие канала было прервано вызовом WsAbortChannel во время закрытия канала. |
|
Канал был в недопустимом состоянии (см. раздел Примечания). |
|
Подключение к удаленной конечной точке было прервано. |
|
Удаленной конечной точке не удалось обработать запрос. |
|
Входные данные не были в ожидаемом формате или не имели ожидаемого значения. |
|
Операция не была завершена в отведенное время. |
|
Превышена квота. |
|
Недостаточно памяти для завершения операции. |
|
Один или несколько аргументов недопустимы. |
|
Эта функция может возвращать другие ошибки, не перечисленные выше. |
Комментарии
Если вы открываете канал или успешно принимаете канал, его необходимо закрыть, когда он больше не нужен. После закрытия канала связанные ресурсы можно безопасно освободить.
Процесс закрытия канала будет ожидать завершения всех уже инициированных операций ввода-вывода.
Если в настоящее время нет сообщений, которые в настоящее время считываются или записываются для канала, канал пытается корректно завершить работу. В противном случае все ожидающие ввода-вывода на самом канале прерваны, а канал выполняет грубое завершение работы.
Если канал пытается корректно завершить работу, но обнаруживает ошибку, WsCloseChannel вернет ошибку, но канал по-прежнему будет закрыт.
Эта операция разрешена, только если канал находится в WS_CHANNEL_STATE_OPEN или WS_CHANNEL_STATE_FAULTED состояниях.
Закрытие канала автоматически отменяет связь с любыми сообщениями, которые находятся в процессе чтения или записи. Поэтому нет необходимости вызывать WsAbandonMessage перед вызовом WsCloseChannel.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | webservices.h |
Библиотека | WebServices.lib |
DLL | WebServices.dll |