Freigeben über


RtlIpv6AddressToStringExW-Funktion (ip2string.h)

Die RtlIpv6AddressToStringEx-Funktion konvertiert eine IPv6-Adresse, Bereichs-ID und Portnummer in eine Zeichenfolge.

Syntax

NTSYSAPI NTSTATUS RtlIpv6AddressToStringExW(
  [in]      const in6_addr *Address,
  [in]      ULONG          ScopeId,
  [in]      USHORT         Port,
  [out]     PWSTR          AddressString,
  [in, out] PULONG         AddressStringLength
);

Parameter

[in] Address

Die IPv6-Adresse in Netzwerkbytereihenfolge.

[in] ScopeId

Die Bereichs-ID der IPv6-Adresse in Netzwerkbytereihenfolge. Dieser Parameter ist optional.

[in] Port

Die Portnummer im Format der Netzwerkbytereihenfolge. Dieser Parameter ist optional.

[out] AddressString

Ein Zeiger auf den Puffer, um die NULL-beendete Zeichenfolgendarstellung der IP-Adresse, Bereichs-ID und Port zu empfangen. Dieser Puffer sollte groß genug sein, um mindestens INET6_ADDRSTRLEN Zeichen aufzunehmen. Der INET6_ADDRSTRLEN Wert wird in der Headerdatei Ws2ipdef.h definiert.

[in, out] AddressStringLength

Bei der Eingabe die Anzahl der Zeichen, die in den Puffer passen, auf die der AddressString-Parameter verweist, einschließlich des NULL-Abschlusszeichens. Bei der Ausgabe enthält dieser Parameter die Anzahl der Zeichen, die tatsächlich in den Puffer geschrieben werden, auf den der AddressString-Parameter verweist.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert STATUS_SUCCESS.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn ein NULL-Zeiger im Parameter AddressString oder AddressStringLength übergeben wird. Dieser Fehler wird auch zurückgegeben, wenn die Länge des Puffers, auf den der Parameter AddressString verweist, nicht groß genug ist, um die Zeichenfolgendarstellung der IPv6-Adresse, bereichs-ID und des Ports zu empfangen.
Andere
Verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die RtlIpv6AddressToStringEx-Funktion wird verwendet, um eine IPv6-Adresse, Bereichs-ID und Portnummer in die Zeichenfolgendarstellung der IPv6-Adresse im Internetformat gefolgt von einer Zeichenfolgendarstellung der Bereichs-ID gefolgt von einer Zeichenfolgendarstellung des Ports zu konvertieren. Bereichs-ID und Portnummer sind optionale Parameter.

Die grundlegende Zeichenfolgendarstellung der zurückgegebenen IPv6-Adresse besteht aus 8 Hexadezimalzahlen, die durch Doppelpunkte getrennt sind. Eine Zeichenfolge mit aufeinanderfolgenden hexadezimalen Nullzahlen wird durch einen Doppelpunkt ersetzt. In der Zeichenfolgendarstellung der IPv6-Adresse kann nur ein Doppelpunkt vorhanden sein. Die letzten 32 Bits werden in IPv4-Style dotted-octet notation dargestellt, wenn es sich bei der Adresse um eine IPv4-kompatible Adresse, eine IPv4-zugeordnete IPv6-Adresse oder eine ISATAP-Adresse handelt. Weitere Informationen finden Sie in Abschnitt 5 von RFC 5942 , der von der IETF veröffentlicht wurde.

Wenn eine Bereichs-ID angegeben wird, wird die Zeichenfolgendarstellung der Bereichs-ID von der Zeichenfolgendarstellung der IPv6-Adresse durch ein Prozentzeichen ("%") getrennt. Wenn eine Portnummer angegeben wird, werden die Zeichenfolgendarstellung der IPv6-Adresse und die Bereichs-ID von quadratischen Klammern umgeben (ein führendes "["-Zeichen gefolgt von der IPv6-Adresse gefolgt von einem %-Zeichen gefolgt von der Bereichs-ID mit einem nachfolgenden "]"-Zeichen). Die Portnummer wird als Doppelpunkt nach dem rechten quadratischen Klammernzeichen gefolgt von der Zeichenfolgendarstellung der Portnummer in dezimal dargestellt.

RtlIpv6AddressToStringEx ist eine Komfortfunktion, die nicht erfordert, dass die Windows Sockets-DLL geladen werden muss, um auf eine in Windows Sockets bereitgestellte Funktion zuzugreifen, um die IP-Adresse in eine Zeichenfolgenkonvertierung durchzuführen.

Wenn die Länge des Puffers, auf den der AddressString-Parameter verweist, nicht groß genug ist, um die Zeichenfolgendarstellung der IP-Adresse, der Bereichs-ID und des Ports zu empfangen, gibt RtlIpv6AddressToStringExERROR_INVALID_PARAMETER zurück und legt den AddressStringLength-Parameter auf die erforderliche Pufferlänge fest.

Wenn entweder UNICODE oder _UNICODE definiert ist, wird RtlIpv6AddressToStringEx fürRtlIpv6AddressToStringExW, die Unicode-Version dieser Funktion, definiert. Der AddressString-Parameter wird für den PWSTR-Datentyp definiert.

Wenn sowohl UNICODE als auch _UNICODE nicht definiert sind, wird RtlIpv6AddressToStringEx für RtlIpv6AddressToStringExA, die ANSI-Version dieser Funktion, definiert. Der AddressString-Parameter wird für den PSTR-Datentyp definiert.

Die IN6_ADDR-Struktur ist in der Headerdatei In6addr.h definiert.

Eine Importbibliothek, die die Funktion RtlIpv6AddressToStringEx enthält, ist nicht im Microsoft Windows Software Development Kit (SDK) enthalten, das für Windows Vista veröffentlicht wurde. Die RtlIpv6AddressToStringEx-Funktion ist in der Ntdll.lib-Importbibliothek enthalten, die im Windows Driver Kit (WDK) enthalten ist. Eine Anwendung kann auch die Funktionen GetModuleHandle und GetProcAddress verwenden, um den Funktionszeiger aus dem Ntdll.dll abzurufen und diese Funktion aufzurufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile ip2string.h (include Mstcpip.h)
Bibliothek ntdll.lib
DLL ntdll.dll

Weitere Informationen

GetModuleHandle

GetProcAddress

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa