Compartilhar via


Função WsCloseChannel (webservices.h)

Fecha um canal especificado.

Sintaxe

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

Parâmetros

[in] channel

Ponteiro para uma estrutura WS_CHANNEL que representa o canal a ser fechado.

[in, optional] asyncContext

Ponteiro para um WS_ASYNC_CONTEXT estrutura de dados que contém informações para invocar a função de forma assíncrona. Passe um valor NULL para chamar a função de forma síncrona.

[in, optional] error

Ponteiro para uma estrutura WS_ERROR em que informações de erro adicionais são armazenadas se a função falhar.

Retornar valor

Se a função for bem-sucedida, ela retornará NO_ERROR; caso contrário, ele retorna um código de erro HRESULT.

Código de retorno Descrição
WS_S_ASYNC
A operação assíncrona ainda está pendente.
WS_E_OPERATION_ABORTED
O fechamento do canal foi anulado por uma chamada para WsAbortChannel enquanto o canal estava fechando.
WS_E_INVALID_OPERATION
O canal estava em um estado inadequado (consulte a seção Comentários).
WS_E_ENDPOINT_DISCONNECTED
A conexão com o ponto de extremidade remoto foi encerrada.
WS_E_ENDPOINT_FAILURE
O ponto de extremidade remoto não pôde processar a solicitação.
WS_E_INVALID_FORMAT
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado.
WS_E_OPERATION_TIMED_OUT
A operação não foi concluída dentro do tempo alocado.
WS_E_QUOTA_EXCEEDED
Uma cota foi excedida.
E_OUTOFMEMORY
Memória insuficiente para concluir a operação.
E_INVALIDARG
Um ou mais argumentos são inválidos.
Outros erros
Essa função pode retornar outros erros não listados acima.

Comentários

Se você abrir um canal ou aceitar um canal com êxito, deverá fechá-lo quando ele não for mais necessário. Depois que um canal for fechado, os recursos associados poderão ser liberados com segurança.

O processo de fechamento de canal aguardará a conclusão de qualquer E/S já iniciada e pendente.

Se não houver mensagens sendo lidas ou gravadas no momento para o canal, o canal tentará um desligamento normal. Caso contrário, todas as E/S ainda pendentes no próprio canal serão anuladas e o canal fará um desligamento rude.

Se o canal tentar um desligamento normal, mas encontrar um erro, WsCloseChannel retornará um erro, mas o canal ainda será fechado.

Essa operação só será permitida se o canal estiver em estados WS_CHANNEL_STATE_OPEN ou WS_CHANNEL_STATE_FAULTED.

Fechar um canal desassocia automaticamente todas as mensagens que estão em processo de leitura ou gravação. Portanto, não é necessário chamar WsAbandonMessage antes de chamar WsCloseChannel).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho webservices.h
Biblioteca WebServices.lib
DLL WebServices.dll