Compartilhar via


Função WsReadMessageStart (webservices.h)

Leia os cabeçalhos da próxima mensagem do canal e prepare-se para ler os elementos do corpo.

Sintaxe

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

Parâmetros

[in] channel

O canal do qual receber.

[in] message

A mensagem a ser recebida.

[in, optional] asyncContext

Informações sobre como invocar a função de forma assíncrona ou NULL se estiver invocando de forma síncrona.

[in, optional] error

Especifica onde informações adicionais de erro devem ser armazenadas se a função falhar.

Retornar valor

Essa função pode retornar um desses valores.

Código de retorno Descrição
S_OK
O início da mensagem foi recebido com êxito.
WS_S_END
Não há mais mensagens disponíveis no canal.
WS_S_ASYNC
A operação assíncrona ainda está pendente.
WS_E_OPERATION_ABORTED
A operação foi anulada.
WS_E_INVALID_OPERATION
A operação não é permitida devido ao estado atual do objeto.
WS_E_ENDPOINT_NOT_FOUND
O ponto de extremidade remoto não existe ou não pôde ser localizado.
WS_E_ENDPOINT_ACCESS_DENIED
O acesso foi negado pelo ponto de extremidade remoto.
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_ENDPOINT_NOT_AVAILABLE
O ponto de extremidade remoto não está atualmente em serviço neste local.
WS_E_ENDPOINT_TOO_BUSY
O ponto de extremidade remoto não pode processar a solicitação devido à sobrecarga.
WS_E_ENDPOINT_UNREACHABLE
O ponto de extremidade remoto não era acessível.
WS_E_INVALID_ENDPOINT_URL
A URL do endereço do ponto de extremidade é inválida.
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_PROXY_ACCESS_DENIED
O acesso foi negado pelo servidor proxy HTTP.
WS_E_PROXY_FAILURE
O servidor proxy HTTP não pôde processar a solicitação.
WS_E_QUOTA_EXCEEDED
Uma cota foi excedida.
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 na operação de segurança na estrutura dos Serviços Web do Windows.
WS_E_SECURITY_TOKEN_EXPIRED
Um token de segurança foi rejeitado pelo servidor porque expirou.
WS_E_PROXY_REQUIRES_BASIC_AUTH
O servidor proxy HTTP requer o esquema de autenticação HTTP 'básico'.
WS_E_PROXY_REQUIRES_DIGEST_AUTH
O servidor proxy HTTP requer o esquema de autenticação HTTP 'digest'.
WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH
O servidor proxy HTTP requer o esquema de autenticação HTTP 'negotiate'.
WS_E_PROXY_REQUIRES_NTLM_AUTH
O servidor proxy HTTP requer o esquema de autenticação HTTP 'NTLM'.
WS_E_SERVER_REQUIRES_BASIC_AUTH
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'básico'.
WS_E_SERVER_REQUIRES_DIGEST_AUTH
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'digest'.
WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'negotiate'.
WS_E_SERVER_REQUIRES_NTLM_AUTH
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'NTLM'.
CERT_E_EXPIRED
Um certificado necessário não está dentro de seu período de validade ao verificar o relógio do sistema atual ou o carimbo de data/hora no arquivo assinado.
CERT_E_CN_NO_MATCH
O nome CN dos certificados não corresponde ao valor passado.
CERT_E_UNTRUSTEDROOT
Uma cadeia de certificados processada, mas encerrada em um certificado raiz que não é confiável pelo provedor de confiança.
CERT_E_WRONG_USAGE
O certificado não é válido para o uso solicitado.
CRYPT_E_REVOCATION_OFFLINE
A função de revogação não pôde verificar a revogação porque o servidor de revogação estava offline.
E_OUTOFMEMORY
Ficou sem memória.
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

Isso lê o início da próxima mensagem do canal, incluindo os cabeçalhos da mensagem.

Essa função é como WsReadEnvelopeStart , mas é usada com canais.

Após o êxito, os cabeçalhos serão armazenados na mensagem e poderão ser acessados de forma de acesso aleatório (por exemplo, usando WsGetHeader).

A mensagem deve estar no estado WS_MESSAGE_STATE_EMPTY . Após o sucesso, a mensagem terá sido transferida para WS_MESSAGE_STATE_READING estado.

Para desserializar um elemento do corpo da mensagem, use WsReadBody. Para ler diretamente do Leitor XML da mensagem, primeiro obtenha o leitor usando a propriedade WS_MESSAGE_PROPERTY_BODY_READER .

Se a entrada do canal for transmitida (WS_STREAMED_INPUT_TRANSFER_MODE), o WsFillBody deverá ser chamado para receber a próxima parte do corpo antes de ser realmente lida.

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