Compartilhar via


Função WsAcceptChannel (webservices.h)

Aceita a próxima mensagem de entrada do ouvinte especificado.

Sintaxe

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

Parâmetros

[in] listener

Ponteiro para uma estrutura WS_LISTENER que representa o ouvinte. Esse é o ouvinte passado para WsCreateChannelForListener quando o canal foi criado.

[in] channel

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

[in, optional] asyncContext

Ponteiro para uma estrutura de dados WS_ASYNC_CONTEXT com informações para invocar a função de forma assíncrona. Passe um valor NULL para uma operação síncrona.

[in, optional] error

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

Retornar valor

Se a função for bem-sucedida, ela retornará NO_ERROR; caso contrário, ele retornará 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 ouvinte ou canal foi anulado.
WS_E_OBJECT_FAULTED
O ouvinte falhou. Consulte a seção Comentários.
WS_E_INVALID_OPERATION
O ouvinte ou o canal ou ambos estavam 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_OPERATION_TIMED_OUT
A operação não foi concluída dentro do tempo alocado.
WS_E_QUOTA_EXCEEDED
Uma cota foi excedida.
WS_E_INVALID_FORMAT
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado.
E_OUTOFMEMORY
Memória insuficiente para concluir a operação.
E_INVALIDARG
Um ou mais argumentos não são válidos.
WS_E_SECURITY_VERIFICATION_FAILURE
A verificação de segurança não foi bem-sucedida para os dados recebidos.
WS_E_SECURITY_SYSTEM_FAILURE
Falha em uma operação de segurança na estrutura dos Serviços Web do Windows.
Outros erros
Essa função pode retornar outros erros não listados acima.

Comentários

Depois de aceitar um canal, você deve fechá-lo quando não precisar mais dele e liberar os recursos chamando o
Função WsCloseChannel e, em seguida, chamando o WsFreeChannel ou o WsResetChannel. .

Para que o WsAcceptChannel tenha êxito, o ouvinte deve estar em WS_LISTENER_STATE_OPEN estado e o canal deve estar em WS_CHANNEL_STATE_CREATED estado. Para obter mais informações, consulte as enumerações WS_LISTENER_STATE e WS_CHANNEL_STATE .

Se um ouvinte estiver no estado WS_LISTENER_STATE_FAULTED ,
WsAcceptChannel retorna imediatamente o código de erro WS_E_OBJECT_FAULTED . Se um aplicativo estiver chamando WsAcceptChannel em um loop, o aplicativo deverá marcar para esse erro, para que possa encerrar o loop.

Requisitos

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