Función de devolución de llamada LPWSPADDRESSTOSTRING (ws2spi.h)

La función LPWSPAddressToString convierte todos los componentes de una estructura sockaddr en una representación numérica legible de la dirección. Esto se usa principalmente para fines de visualización.

Sintaxis

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

Puntero a una estructura sockaddr que se va a traducir en una cadena.

[in] dwAddressLength

Longitud de la dirección de sockaddr, en bytes.

[in] lpProtocolInfo

(obligatorio) WSAProtocol_Info estructura asociada al proveedor que realizará la traducción.

[out] lpszAddressString

Búfer que recibe la cadena de dirección legible.

[in, out] lpdwAddressStringLength

Longitud del búfer AddressString , en bytes. Devuelve la longitud de la cadena copiada realmente en el búfer. Si el búfer proporcionado no es lo suficientemente grande, la función produce un error específico de WSAEFAULT y este parámetro se actualiza con el tamaño necesario, en bytes.

[out] lpErrno

Puntero al código de error.

Valor devuelto

Si no se produce ningún error, LPWSPAddressToString devuelve cero. De lo contrario, devuelve SOCKET_ERROR y hay disponible un código de error específico en lpErrno.

Código de error Significado
WSAEFAULT
El búfer addressString especificado es demasiado pequeño. Pase un búfer mayor.
WSAEINVAL
La dirección especificada no es una dirección de socket válida o su familia de direcciones no es compatible con el proveedor, o el lpProtocolInfo especificado no hizo referencia a una estructura de WSAProtocol_Info compatible con el proveedor.
 
 

Comentarios

Un proveedor de servicios en capas proporciona una implementación de esta función, pero también es un cliente de esta función si y cuando llama a LPWSPAddressToString de la siguiente capa de la cadena de protocolos. Algunas consideraciones especiales se aplican al parámetro lpProtocolInfo , ya que se propaga a través de las capas de la cadena de protocolos.

Si la siguiente capa de la cadena de protocolos es otra capa, cuando se llama al LPWSPAddressToString de la capa siguiente, esta capa debe pasar al siguiente nivel un parámetro lpProtocolInfo que haga referencia a la misma estructura de WSAProtocol_Info sin modificar con la misma información de cadena sin modificar. Sin embargo, si la capa siguiente es el protocolo base (es decir, el último elemento de la cadena), esta capa realiza una sustitución al llamar al LPWSPAddressToString del proveedor base. En este caso, el parámetro lpProtocolInfo debe hacer referencia a la estructura WSAPROTOCOL_INFO del proveedor base. Una ventaja fundamental de esta directiva es que los proveedores de servicios base no tienen que ser conscientes de las cadenas de protocolo.

Esta misma directiva de propagación se aplica al propagar una estructura de WSAProtocol_Info a través de una secuencia superpuesta de otras funciones, como LPWSPDuplicateSocket, WSPStartup, LPWSPSocket o LPWSPStringToAddress.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ws2spi.h

Consulte también

WSAProtocol_Info

WSPDucplicateSocket

LPWSPSocket

WSPStartup

sockaddr