Freigeben über


RtlIpv6StringToAddressW-Funktion (ip2string.h)

Die funktion RtlIpv6StringToAddress konvertiert eine Zeichenfolgendarstellung einer IPv6-Adresse in eine binäre IPv6-Adresse.

Syntax

NTSYSAPI NTSTATUS RtlIpv6StringToAddressW(
  [in]  PCWSTR   S,
  [out] PCWSTR   *Terminator,
  [out] in6_addr *Addr
);

Parameter

[in] S

Ein Zeiger auf einen Puffer, der die NULL--terminated-Zeichenfolgendarstellung der IPv6-Adresse enthält.

[out] Terminator

Ein Parameter, der einen Zeiger auf das Zeichen empfängt, das die konvertierte Zeichenfolge beendet hat. Dies kann vom Aufrufer verwendet werden, um weitere Informationen aus der Zeichenfolge zu extrahieren.

[out] Addr

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

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
An die Funktion wurde ein ungültiger Parameter übergeben. Dieser Fehler wird zurückgegeben, wenn die Zeichenfolge, auf die der S-Parameter verweist, keine ordnungsgemäße Zeichenfolgendarstellung einer IPv6-Adresse enthielt.

Dieser Fehlercode ist in der Ntstatus.h-Headerdatei definiert.

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

Bemerkungen

Die RtlIpv6StringToAddress-Funktion wird verwendet, um eine Zeichenfolgendarstellung der IPv6-Adresse in eine IPv6-Adresse zu konvertieren, die in der Netzwerkreihenfolge zurückgegeben wird (Byte von links nach rechts sortiert).

RtlIpv6StringToAddress ist eine Komfortfunktion, die nicht erfordert, dass die Windows Sockets-DLL geladen wird, um auf eine in Windows Sockets bereitgestellte Funktion zuzugreifen, um eine Zeichenfolge für die IP-Adresskonvertierung auszuführen.

Die Zeichenfolge, auf die der S--Parameter verweist, muss im Formular für eine IPv6-Adresszeichenfolge dargestellt werden. Die grundlegende Zeichenfolgendarstellung einer IPv6-Adresse besteht aus 8 hexadezimalen Zahlen, die durch Doppelpunkte getrennt sind. Eine Zeichenfolge aufeinanderfolgender Nullnummern kann durch einen Doppelpunkt ersetzt werden. In der Zeichenfolgendarstellung der IPv6-Adresse kann nur ein Doppelpunkt vorhanden sein. Die letzten 32 Bits können in der IPv4-Schreibweise punktierte Oktettnotation dargestellt werden, 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 veröffentlicht vom IETF.

Bei Erfolg zeigt der Terminator Parameter auf das Zeichen, das die konvertierte Zeichenfolge beendet hat. Dadurch kann eine Anwendung eine Zeichenfolge übergeben, die eine Zeichenfolge enthält und die IP-Adresse sowie zusätzliche Informationen an die RtlIpv6StringToAddress-funktion und dann die verbleibenden Informationen analysiert.

Hinweis Einige falsch formatierte IPv6-Adressen (::::, z. B.) beginnen mit einer gültigen IPv6-Adresse. Die RtlIpv6StringToAddress-Funktion gibt erfolglos zurück, wobei der gültige Teil der IPv6-Adresse als Doppelpunkt (::)) analysiert wurde. Der Terminator zeigt dann auf den dritten Doppelpunkt. Um zu überprüfen, ob die gesamte übergebene Zeichenfolge eine gültige IPv6-Adresse ist, müssen Sie sicherstellen, dass der Terminator auf das richtige Zeichen zeigt. Wenn der S-Parameter nur eine IPv6-Adresse enthält, sollte der Terminator auf das NULL- Zeichen am Ende der Zeichenfolge zeigen.
 
Wenn unicode oder _UNICODE definiert ist, wird RtlIpv6StringToAddress- in RtlIpv6StringToAddressW, der Unicode-Version dieser Funktion, definiert. Die parameter S und Terminator werden für den PCWSTR-Datentyp definiert.

Wenn unicode und _UNICODE nicht definiert sind, wird RtlIpv6StringToAddress für RtlIpv6StringToAddressAdefiniert, die ANSI-Version dieser Funktion. Die parameter S und Terminator werden für den PCSTR-Datentyp definiert.

Die IN6_ADDR Struktur wird in der Headerdatei "In6addr.h" definiert.

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

Anmerkung

Der header ip2string.h definiert RtlIpv6StringToAddress als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- ip2string.h (include Mstcpip.h, Ip2string.h)
Library ntdll.lib
DLL- ntdll.dll

Siehe auch

GetModuleHandle-

GetProcAddress-

IN6_ADDR

InetNtop-

InetPton

LoadLibrary-

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa