Função de retorno de chamada LPWSPADDRESSTOSTRING (ws2spi.h)
A função LPWSPAddressToString converte todos os componentes de uma estrutura sockaddr em uma representação de cadeia de caracteres numérica legível por humanos do endereço. Isso é usado principalmente para fins de exibição.
Sintaxe
LPWSPADDRESSTOSTRING Lpwspaddresstostring;
INT Lpwspaddresstostring(
[in] LPSOCKADDR lpsaAddress,
[in] DWORD dwAddressLength,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[out] LPWSTR lpszAddressString,
[in, out] LPDWORD lpdwAddressStringLength,
[out] LPINT lpErrno
)
{...}
Parâmetros
[in] lpsaAddress
Ponteiro para uma estrutura sockaddr a ser convertida em uma cadeia de caracteres.
[in] dwAddressLength
Comprimento do endereço de sockaddr, em bytes.
[in] lpProtocolInfo
(obrigatório) WSAProtocol_Info estrutura associada ao provedor que fará a tradução.
[out] lpszAddressString
Buffer que recebe a cadeia de caracteres de endereço legível por humanos..
[in, out] lpdwAddressStringLength
Comprimento do buffer AddressString , em bytes. Retorna o comprimento da cadeia de caracteres realmente copiada para o buffer. Se o buffer fornecido não for grande o suficiente, a função falhará com um erro específico de WSAEFAULT e esse parâmetro será atualizado com o tamanho necessário, em bytes.
[out] lpErrno
Ponteiro para o código de erro.
Retornar valor
Se nenhum erro ocorrer, LPWSPAddressToString retornará zero. Caso contrário, ele retornará SOCKET_ERROR e um código de erro específico estará disponível no lpErrno.
Código do erro | Significado |
---|---|
O buffer AddressString especificado é muito pequeno. Passe um buffer maior. | |
O endereço especificado não é um endereço de soquete válido ou sua família de endereços não é compatível com o provedor ou o lpProtocolInfo especificado não se refere a uma estrutura de WSAProtocol_Info com suporte do provedor. |
Comentários
Um provedor de serviços em camadas fornece uma implementação dessa função, mas também é um cliente dessa função se e quando chama LPWSPAddressToString da próxima camada na cadeia de protocolos. Algumas considerações especiais se aplicam ao parâmetro lpProtocolInfo conforme ele é propagado pelas camadas da cadeia de protocolos.
Se a próxima camada na cadeia de protocolo for outra camada, quando o LPWSPAddressToString da próxima camada for chamado, essa camada deverá passar para a próxima camada um parâmetro lpProtocolInfo que referencie a mesma estrutura de WSAProtocol_Info não modificada com as mesmas informações de cadeia não modificadas. No entanto, se a próxima camada for o protocolo base (ou seja, o último elemento na cadeia), essa camada executará uma substituição ao chamar LPWSPAddressToString do provedor base. Nesse caso, a estrutura de WSAPROTOCOL_INFO do provedor base deve ser referenciada pelo parâmetro lpProtocolInfo . Um benefício vital dessa política é que os provedores de serviços base não precisam estar cientes das cadeias de protocolo.
Essa mesma política de propagação se aplica ao propagar uma estrutura WSAProtocol_Info por meio de uma sequência em camadas de outras funções, como LPWSPDuplicateSocket, WSPStartup, LPWSPSocket ou LPWSPStringToAddress.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | ws2spi.h |