Partager via


Fonction RtlIpv6StringToAddressA (ip2string.h)

La fonction RtlIpv6StringToAddress convertit une représentation sous forme de chaîne d’une adresse IPv6 en adresse IPv6 binaire.

Syntaxe

NTSYSAPI NTSTATUS RtlIpv6StringToAddressA(
  [in]  PCSTR    S,
  [out] PCSTR    *Terminator,
  [out] in6_addr *Addr
);

Paramètres

[in] S

Pointeur vers une mémoire tampon contenant la représentation de chaîne terminée par null de l’adresse IPv6.

[out] Terminator

Paramètre qui reçoit un pointeur vers le caractère qui a mis fin à la chaîne convertie. Cela peut être utilisé par l’appelant pour extraire plus d’informations de la chaîne.

[out] Addr

Pointeur dans lequel la représentation binaire de l’adresse IPv6 doit être stockée.

Valeur retournée

Si la fonction réussit, la valeur de retour est STATUS_SUCCESS.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
STATUS_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si la chaîne pointée vers par le paramètre S ne contient pas de représentation de chaîne appropriée d’une adresse IPv6.

Ce code d’erreur est défini dans le fichier d’en-tête Ntstatus.h.

Autres
Utilisez FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

La fonction RtlIpv6StringToAddress permet de convertir une représentation sous forme de chaîne de l’adresse IPv6 en adresse IPv6 retournée dans l’ordre réseau (octets triés de gauche à droite).

RtlIpv6StringToAddress est une fonction pratique qui ne nécessite pas que la DLL windows Sockets soit chargée pour accéder à une fonction fournie dans les sockets Windows pour effectuer la conversion de chaîne en adresse IP.

La chaîne pointée vers le paramètre S doit être représentée sous la forme d’une chaîne d’adresse IPv6. La représentation sous forme de chaîne de base d’une adresse IPv6 se compose de 8 nombres hexadécimaux séparés par des points-virgules. Une chaîne de nombres zéro consécutifs peut être remplacée par un double-point. Il ne peut y avoir qu’un seul signe deux-points dans la représentation sous forme de chaîne de l’adresse IPv6. Les 32 derniers bits peuvent être représentés en notation en pointillés de style IPv4 si l’adresse est une adresse compatible IPv4, une adresse IPv6 mappée ou une adresse ISATAP. Pour plus d’informations, consultez la section 5 de la RFC 5942 publiée par l’IETF.

En cas de réussite, le paramètre Terminator pointe vers le caractère qui a mis fin à la chaîne convertie. Cela permet à une application de passer une chaîne contenant l’adresse IP et les informations supplémentaires à la fonction RtlIpv6StringToAddress , puis d’analyser les informations restantes.

Note Certaines adresses IPv6 mal formées ( ::::, par exemple) commencent par une adresse IPv6 valide. La fonction RtlIpv6StringToAddress retourne la réussite, après avoir analysé la partie valide de l’adresse IPv6 comme deux-points doubles ( ::). Le pointeur pointe ensuite vers le troisième signe deux-points. Pour vérifier que l’intégralité de la chaîne transmise est une adresse IPv6 valide, vous devez vous assurer que la terminaison pointe vers le caractère correct. Si le paramètre S contient uniquement une adresse IPv6, le pointeur de terminaison doit pointer vers le caractère NULL à la fin de la chaîne.
 
Lorsque unicode ou _UNICODE est défini, RtlIpv6StringToAddress est défini sur RtlIpv6StringToAddressW, la version Unicode de cette fonction. Les paramètres S et Terminator sont définis sur le type de données PCWSTR.

Lorsque UNICODE et _UNICODE ne sont pas définis, RtlIpv6StringToAddress est défini sur RtlIpv6StringToAddressA, la version ANSI de cette fonction. Les paramètres S et Terminator sont définis pour le type de données PCSTR.

La structure IN6_ADDR est définie dans le fichier d’en-tête In6addr.h.

Une bibliothèque d’importation contenant la fonction RtlIpv6StringToAddress n’est pas incluse dans le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista. La fonction RtlIpv6StringToAddress est incluse dans la bibliothèque d’importation Ntdll.lib incluse dans le Kit de pilotes Windows (WDK). Une application peut également utiliser les fonctions GetModuleHandle et GetProcAddress pour récupérer le pointeur de fonction à partir du Ntdll.dll et appeler cette fonction.

Notes

L’en-tête ip2string.h définit RtlIpv6StringToAddress comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête ip2string.h (inclure Mstcpip.h, Ip2string.h)
Bibliothèque ntdll.lib
DLL ntdll.dll

Voir aussi

GetModuleHandle

GetProcAddress

IN6_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa