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
WSAEFAULT
O buffer AddressString especificado é muito pequeno. Passe um buffer maior.
WSAEINVAL
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

Confira também

Wsaprotocol_info

WSPDucplicateSocket

LPWSPSocket

Wspstartup

Sockaddr