次の方法で共有


WSPAddressToString (Compact 2013)

3/26/2014

This function converts all parts of a sockaddr structure into a human readable-numeric string representation of the address. This is used mainly for display purposes.

Syntax

int WSPAddressToString(
  LPSOCKADDR lpsaAddress,
  DWORD dwAddressLength,
  LPWSAPROTOCOL_INFOW lpProtocolInfo,
  LPWSTR lpszAddressString,
  LPDWORD lpdwAddressStringLength,
  LPINT lpErrno 
);

Parameters

  • lpsaAddress
    [in] Points to a sockaddr structure to translate into a string.
  • dwAddressLength
    [in] Length of the address sockaddr.
  • lpProtocolInfo
    [in] (required) WSAPROTOCOL_INFO structure associated with the provider that will do the translation.
  • lpszAddressString
    [out] Buffer that receives the human readable-address string.
  • lpdwAddressStringLength
    [in, out] On input, the length of the AddressString buffer in characters. On output, returns the length of the string actually copied into the buffer including the terminating NULL character. If the supplied buffer is not large enough, the function fails with a specific error of WSAEFAULT and this parameter is updated with the required string length in characters.
  • lpErrno
    [out] Pointer to the error code.

Return Value

If no error occurs, this function returns zero. Otherwise, it returns SOCKET_ERROR, and a specific error code is available in lpErrno.

Error value

Description

WSAEFAULT

Specified AddressString buffer is too small. Pass in a larger buffer.

WSA_EINVAL

Specified Address is not a valid socket address, or its address family is not supported by the provider, or the specified lpProtocolInfo did not refer to a WSAPROTOCOL_INFO structure supported by the provider.

Layered Service Provider Considerations

A layered service provider supplies an implementation of this function, but it is also a client of this function if and when it calls WSPAddressToString of the next layer in the provider chain. Some special considerations apply to the lpProtocolInfo parameter as it is propagated down through the layers of the provider chain.

When a layer follows another layer in a provider chain the first layer must pass to the next a lpProtocolInfo parameter when the second layer's WSPAddressToString function is called. The lpProtocolInfo parameter should reference a WSAPROTOCOL_INFO structure with unmodified chain information. However, if the next layer is the base protocol (that is, the last element in the chain), this layer performs a substitution when calling the base provider's WSPAddressToString. In this case, the base provider's WSAPROTOCOL_INFO structure should be referenced by the lpProtocolInfo parameter. One vital benefit of this policy is that base service providers do not have to be aware of provider chains.

This same propagation policy applies when propagating a WSAPROTOCOL_INFO structure through a layered sequence of other functions such as WSPDuplicateSocket, WSPStartup, WSPSocket, or WSPStringToAddress.

Requirements

Header

ws2spi.h

Library

Ws2.lib

See Also

Reference

Winsock SPI Functions
sockaddr
WSPSocket
WSPStartup
WSAPROTOCOL_INFO