Partager via


Fonction de rappel LPWSPADDRESSTOSTRING (ws2spi.h)

La fonction LPWSPAddressToString convertit tous les composants d’une structure sockaddr en une représentation de chaîne numérique lisible par l’utilisateur de l’adresse. Il est principalement utilisé à des fins d’affichage.

Syntaxe

LPWSPADDRESSTOSTRING Lpwspaddresstostring;

INT Lpwspaddresstostring(
  [in]      LPSOCKADDR lpsaAddress,
  [in]      DWORD dwAddressLength,
  [in]      LPWSAPROTOCOL_INFOW lpProtocolInfo,
  [out]     LPWSTR lpszAddressString,
  [in, out] LPDWORD lpdwAddressStringLength,
  [out]     LPINT lpErrno
)
{...}

Paramètres

[in] lpsaAddress

Pointeur vers une structure de sockaddr à traduire en chaîne.

[in] dwAddressLength

Longueur de l’adresse de sockaddr, en octets.

[in] lpProtocolInfo

(obligatoire) WSAProtocol_Info structure associée au fournisseur qui effectuera la traduction.

[out] lpszAddressString

Mémoire tampon qui reçoit la chaîne d’adresse lisible par l’utilisateur..

[in, out] lpdwAddressStringLength

Longueur de la mémoire tampon AddressString , en octets. Retourne la longueur de la chaîne réellement copiée dans la mémoire tampon. Si la mémoire tampon fournie n’est pas assez grande, la fonction échoue avec une erreur spécifique de WSAEFAULT et ce paramètre est mis à jour avec la taille requise, en octets.

[out] lpErrno

Pointeur vers le code d’erreur.

Valeur retournée

Si aucune erreur ne se produit, LPWSPAddressToString retourne zéro. Sinon, il retourne SOCKET_ERROR, et un code d’erreur spécifique est disponible dans lpErrno.

Code d'erreur Signification
WSAEFAULT
La mémoire tampon AddressString spécifiée est trop petite. Transmettez une mémoire tampon plus grande.
WSAEINVAL
L’adresse spécifiée n’est pas une adresse de socket valide, ou sa famille d’adresses n’est pas prise en charge par le fournisseur, ou le lpProtocolInfo spécifié ne fait pas référence à une structure de WSAProtocol_Info prise en charge par le fournisseur.
 
 

Remarques

Un fournisseur de services en couche fournit une implémentation de cette fonction, mais il est également client de cette fonction si et quand il appelle LPWSPAddressToString de la couche suivante dans la chaîne de protocole. Certaines considérations spéciales s’appliquent au paramètre lpProtocolInfo , car il est propagé dans les couches de la chaîne de protocole.

Si la couche suivante de la chaîne de protocole est une autre couche, alors, lorsque le LPWSPAddressToString de la couche suivante est appelé, cette couche doit passer à la couche suivante un paramètre lpProtocolInfo qui fait référence à la même structure de WSAProtocol_Info non modifiée avec les mêmes informations de chaîne non modifiées. Toutefois, si la couche suivante est le protocole de base (c’est-à-dire le dernier élément de la chaîne), cette couche effectue une substitution lors de l’appel de LPWSPAddressToString du fournisseur de base. Dans ce cas, la structure WSAPROTOCOL_INFO du fournisseur de base doit être référencée par le paramètre lpProtocolInfo . L’un des avantages essentiels de cette stratégie est que les fournisseurs de services de base n’ont pas besoin de connaître les chaînes de protocoles.

Cette même stratégie de propagation s’applique lors de la propagation d’une structure WSAProtocol_Info via une séquence en couches d’autres fonctions telles que LPWSPDuplicateSocket, WSPStartup, LPWSPSocket ou LPWSPStringToAddress.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ws2spi.h

Voir aussi

WSAProtocol_Info

WSPDucplicateSocket

LPWSPSocket

WSPStartup

sockaddr