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

La función WSPStringToAddress convierte una cadena numérica legible en una estructura de direcciones de socket (sockaddr) adecuada para pasar a rutinas de Windows Sockets que toman dicha estructura. Los componentes que faltan de la dirección tienen como valor predeterminado un valor razonable, si es posible. Por ejemplo, un número de puerto que falta tiene el valor predeterminado es cero.

Sintaxis

LPWSPSTRINGTOADDRESS Lpwspstringtoaddress;

INT Lpwspstringtoaddress(
  [in]      LPWSTR AddressString,
  [in]      INT AddressFamily,
  [in]      LPWSAPROTOCOL_INFOW lpProtocolInfo,
  [out]     LPSOCKADDR lpAddress,
  [in, out] LPINT lpAddressLength,
  [out]     LPINT lpErrno
)
{...}

Parámetros

[in] AddressString

Puntero a la cadena legible de extremo cero que se va a convertir.

[in] AddressFamily

Familia de direcciones a la que pertenece la cadena o AF_UNSPEC si se desconoce.

[in] lpProtocolInfo

(obligatorio) Estructura de WSAProtocol_Info del proveedor.

[out] lpAddress

Búfer que se rellena con una sola estructura de sockaddr .

[in, out] lpAddressLength

Longitud del búfer de direcciones, en bytes. Devuelve el tamaño de la estructura sockaddr resultante. 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, WSPStringToAddress devuelve cero. De lo contrario, se devuelve un valor de SOCKET_ERROR y hay disponible un código de error específico en lpErrno.

Código de error Significado
WSAEFAULT
El búfer de direcciones especificado es demasiado pequeño y pasa un búfer mayor.
WSAEINVAL
No se puede traducir la cadena en un sockaddr o el proveedor no pudo admitir la familia de direcciones indicada 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 WSPStringToAddress de la capa siguiente de la cadena de protocolos. Algunas consideraciones especiales se aplican al parámetro lpProtocolInfo de esta función, 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 a WSPStringToAddress de la capa siguiente, esta capa debe pasar a la siguiente capa un lpProtocolInfo que haga referencia a la misma estructura 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 a WSPStringToAddress 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 protocolos.

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

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

LPWSPDuplicateSocket

LPWSPSocket

WSPStartup

sockaddr