Función WsCloseChannel (webservices.h)

Cierra un canal especificado.

Sintaxis

HRESULT WsCloseChannel(
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Parámetros

[in] channel

Puntero a una estructura de WS_CHANNEL que representa el canal que se va a cerrar.

[in, optional] asyncContext

Puntero a una estructura de datos de WS_ASYNC_CONTEXT que contiene información para invocar la función de forma asincrónica. Pase un valor NULL para llamar a la función de forma sincrónica.

[in, optional] error

Puntero a una estructura de WS_ERROR donde se almacena información de error adicional si se produce un error en la función.

Valor devuelto

Si la función se realiza correctamente, devuelve NO_ERROR; de lo contrario, devuelve un código de error HRESULT.

Código devuelto Descripción
WS_S_ASYNC
La operación asincrónica sigue pendiente.
WS_E_OPERATION_ABORTED
El cierre del canal se anuló mediante una llamada a WsAbortChannel mientras el canal estaba cerrando.
WS_E_INVALID_OPERATION
El canal estaba en un estado inadecuado (consulte la sección Comentarios).
WS_E_ENDPOINT_DISCONNECTED
Se finalizó la conexión con el punto de conexión remoto.
WS_E_ENDPOINT_FAILURE
El punto de conexión remoto no pudo procesar la solicitud.
WS_E_INVALID_FORMAT
Los datos de entrada no tenían el formato esperado o no tenían el valor esperado.
WS_E_OPERATION_TIMED_OUT
La operación no se completó dentro del tiempo asignado.
WS_E_QUOTA_EXCEEDED
Se superó una cuota.
E_OUTOFMEMORY
Memoria insuficiente para completar la operación.
E_INVALIDARG
Uno o más argumentos no son válidos.
Otros errores
Esta función puede devolver otros errores no enumerados anteriormente.

Comentarios

Si abre un canal o acepta correctamente un canal, debe cerrarlo cuando ya no sea necesario. Una vez cerrado un canal, los recursos asociados se pueden liberar de forma segura.

El proceso de cierre del canal esperará a que se completen las E/S ya iniciadas y pendientes.

Si no hay mensajes leídos o escritos actualmente para el canal, el canal intenta un apagado correcto. De lo contrario, se anulan todas las E/S pendientes en el propio canal y el canal realiza un apagado grosero.

Si el canal intenta un apagado correcto, pero se produce un error, WsCloseChannel devolverá un error, pero el canal seguirá cerrado.

Esta operación solo se permite si el canal está en WS_CHANNEL_STATE_OPEN o WS_CHANNEL_STATE_FAULTED estados.

Cerrar un canal desasocia automáticamente los mensajes que están en proceso de lectura o escritura. Por lo tanto, no es necesario llamar a WsAbandonMessage antes de llamar a WsCloseChannel).

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado webservices.h
Library WebServices.lib
Archivo DLL WebServices.dll