RtlIpv6StringToAddressExW-Funktion (ip2string.h)

Die RtlIpv6StringToAddressEx-Funktion konvertiert eine Zeichenfolgendarstellung einer IPv6-Adresse, Bereichs-ID und Portnummer in eine binäre IPv6-Adresse, Bereichs-ID und Port.

Syntax

NTSYSAPI NTSTATUS RtlIpv6StringToAddressExW(
  [in]  PCWSTR   AddressString,
  [out] in6_addr *Address,
  [out] PULONG   ScopeId,
  [out] PUSHORT  Port
);

Parameter

[in] AddressString

Ein Zeiger auf einen Puffer, der die NULL-beendete Zeichenfolgendarstellung der IPv6-Adresse, Bereichs-ID und Portnummer enthält.

[out] Address

Ein Zeiger, in dem die binäre Darstellung der IPv6-Adresse gespeichert werden soll.

[out] ScopeId

Ein Zeiger auf den Speicherort der Bereichs-ID der IPv6-Adresse. Wenn der AddressString-Parameter nicht die Zeichenfolgendarstellung einer Bereichs-ID enthält, wird in diesem Parameter null zurückgegeben.

[out] Port

Ein Zeiger, in dem die Portnummer gespeichert ist. Die Portnummer hat das Format der Netzwerkbytereihenfolge. Wenn der AddressString-Parameter nicht die Zeichenfolgendarstellung einer Portnummer enthält, wird in diesem Parameter null zurückgegeben.

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 die Zeichenfolge, auf die der AddressString-Parameter verweist, keine richtige Zeichenfolgendarstellung einer IPv6-Adresse enthält.

Dieser Fehlercode wird in der Headerdatei Ntstatus.h definiert.

Andere
Verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die RtlIpv6StringToAddressEx-Funktion wird verwendet, um eine Zeichenfolgendarstellung der IPv6-Adresse, Bereichs-ID und Portnummer in eine binäre IPv6-Adresse, Bereichs-ID und Portnummer zu konvertieren. Die IPv6-Adresse wird in Netzwerkreihenfolge (Byte von links nach rechts sortiert) zurückgegeben. Portnummer und Bereichs-ID werden in Netzwerkreihenfolge zurückgegeben.

RtlIpv6StringToAddressEx ist eine Komfortfunktion, die nicht erfordert, dass die Windows Sockets-DLL geladen wird, um auf eine in Windows Sockets bereitgestellte Funktion zuzugreifen, um die Konvertierung von Zeichenfolgen zu IP-Adressen durchzuführen.

Die Zeichenfolge, auf die der AddressString-Parameter verweist, muss in der Form für eine IPv6-Adresszeichenfolge gefolgt von einem optionalen Prozentzeichen und einer Bereichs-ID-Zeichenfolge dargestellt werden. Die IPv6-Adress- und Bereichs-ID-Zeichenfolge müssen in eckige Klammern eingeschlossen werden. Auf die rechte eckige Klammer nach der IPv6-Adresse und der Bereichs-ID-Zeichenfolge können ein optionaler Doppelpunkt und eine Zeichenfolgendarstellung einer Portnummer folgen. Die grundlegende Zeichenfolgendarstellung einer IPv6-Adresse besteht aus 8 hexadezimalen Zahlen, die durch Doppelpunkte getrennt sind. Eine Zeichenfolge mit aufeinanderfolgenden Nullzahlen kann durch einen Doppelkolon ersetzt werden. In der Zeichenfolgendarstellung der IPv6-Adresse kann nur ein Doppelpunkt vorhanden sein. Die letzten 32 Bits können in IPv4-Style dotted-octet notation dargestellt werden, wenn die Adresse eine IPv4-kompatible Adresse, eine IPv4-zugeordnete IPv6-Adresse oder eine ISATAP-Adresse ist. Weitere Informationen finden Sie in Abschnitt 5 von RFC 5942 , der von der IETF veröffentlicht wurde.

Wenn entweder UNICODE oder _UNICODE definiert ist, wird RtlIpv6StringToAddressEx für "RtlIpv6StringToAddressExW", die Unicode-Version dieser Funktion, definiert. Der AddressString-Parameter ist für den PCWSTR-Datentyp definiert.

Wenn sowohl UNICODE als auch _UNICODE nicht definiert sind, wird RtlIpv6StringToAddressEx für "RtlIpv6StringToAddressExA", die ANSI-Version dieser Funktion, definiert. Der AddressString-Parameter ist für den PCSTR-Datentyp definiert.

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

Eine Importbibliothek, die die Funktion RtlIpv6StringToAddressEx enthält, ist nicht im Microsoft Windows Software Development Kit (SDK) enthalten, das für Windows Vista veröffentlicht wurde. Die RtlIpv6StringToAddressEx-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

Anforderung Wert
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

IN6_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

inet_addr

inet_ntoa