Share via


ResolveIpNetEntry2-Funktion (netioapi.h)

Die ResolveIpNetEntry2-Funktion löst die physische Adresse für einen Benachbarten IP-Adresseintrag auf dem lokalen Computer auf.

Syntax

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API ResolveIpNetEntry2(
  [in, out]      PMIB_IPNET_ROW2     Row,
  [in, optional] const SOCKADDR_INET *SourceAddress
);

Parameter

[in, out] Row

Ein Zeiger auf einen MIB_IPNET_ROW2 Struktureintrag für einen benachbarten IP-Adresseintrag. Bei erfolgreicher Rückgabe wird diese Struktur mit den Eigenschaften für die benachbarte IP-Adresse aktualisiert.

[in, optional] SourceAddress

Ein Zeiger auf eine optionale Quell-IP-Adresse, die zum Auswählen der Schnittstelle zum Senden der Anforderungen für den Eintrag der benachbarten IP-Adresse verwendet wird.

Rückgabewert

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

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

Rückgabecode Beschreibung
ERROR_BAD_NET_NAME
„Der Netzwerkname wurde nicht gefunden.“ Dieser Fehler wird zurückgegeben, wenn das Netzwerk mit der benachbarten IP-Adresse nicht erreichbar ist.
ERROR_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn ein NULL-Zeiger im Row-Parameter übergeben wird, das Address-Element des MIB_IPNET_ROW2 , auf das vom Row-Parameter verwiesen wird, nicht auf eine gültige IPv4- oder IPv6-Adresse festgelegt wurde, oder die Elemente InterfaceLuid oder InterfaceIndex des MIB_IPNET_ROW2 , auf das vom Row-Parameter verwiesen wird, wurden nicht angegeben. Dieser Fehler wird auch zurückgegeben, wenn eine Loopbackadresse im Adresselement übergeben wurde.
ERROR_NOT_FOUND
Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die Netzwerkschnittstelle, die vom InterfaceLuid - oder InterfaceIndex-Member des MIB_IPNET_ROW2 durch den Row-Parameter angegeben wurde, nicht gefunden werden konnte.
ERROR_NOT_SUPPORTED
Die Anforderung wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn sich auf dem lokalen Computer kein IPv4-Stapel befindet und eine IPv4-Adresse im Adresselement des MIB_IPNET_ROW2 angegeben wurde, auf den der Row-Parameter verweist, oder sich auf dem lokalen Computer kein IPv6-Stapel befindet und im Address-Member eine IPv6-Adresse angegeben wurde.
Andere
Verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die ResolveIpNetEntry2-Funktion ist unter Windows Vista und höher definiert.

Die ResolveIpNetEntry2-Funktion wird verwendet, um die physische Adresse für einen Benachbarten IP-Adresseintrag auf einem lokalen Computer aufzulösen. Diese Funktion löscht alle vorhandenen benachbarten Einträge, die der IP-Adresse auf der Schnittstelle entsprechen, und löst dann die MAC-Adresse auf, indem ARP-Anforderungen für eine IPv4-Adresse oder benachbarte Anfragen für eine IPv6-Adresse gesendet werden. Wenn der SourceAddress-Parameter angegeben ist, wählt die ResolveIpNetEntry2-Funktion die Schnittstelle mit dieser Quell-IP-Adresse aus, um die Anforderungen zu senden. Wenn der SourceAddress-Parameter nicht angegeben ist (NULL wurde in diesem Parameter übergeben), wählt die ResolveIpNetEntry2-Funktion automatisch die beste Schnittstelle zum Senden der Anforderungen aus.

Das Adresselement in der MIB_IPNET_ROW2 Struktur, auf die der Row-Parameter verweist, muss für eine gültige IPv4- oder IPv6-Adresse und -Familie initialisiert werden. Darüber hinaus muss mindestens eines der folgenden Member in der MIB_IPNET_ROW2 Struktur, die auf den Row-Parameter verweist, für die Schnittstelle initialisiert werden: InterfaceLuid oder InterfaceIndex.

Die Felder werden in der oben aufgeführten Reihenfolge verwendet. Wenn also InterfaceLuid angegeben wird, wird dieser Member verwendet, um die Schnittstelle zu bestimmen, der die Unicast-IP-Adresse hinzugefügt werden soll. Wenn kein Wert für das InterfaceLuid-Element festgelegt wurde (die Werte dieses Members wurden auf Null festgelegt), wird das InterfaceIndex-Element als nächstes verwendet, um die Schnittstelle zu bestimmen.

Wenn die IP-Adresse, die im Adresselement des MIB_IPNET_ROW2 übergeben wird, auf die der Row-Parameter verweist, ein Duplikat einer vorhandenen benachbarten IP-Adresse auf der Schnittstelle ist, wird der vorhandene Eintrag von der ResolveIpNetEntry2-Funktion geleert, bevor die IP-Adresse aufgelöst wird.

Bei der Ausgabe, wenn der Aufruf erfolgreich ist, ruft ResolveIpNetEntry2 die anderen Eigenschaften für die benachbarte IP-Adresse ab und füllt die MIB_IPNET_ROW2 Struktur aus, auf die der Row-Parameter verweist. Die Member PhysicalAddress und PhysicalAddressLength in der MIB_IPNET_ROW2 Struktur, auf die vom Row-Parameter verwiesen wird, werden in einer gültigen physischen Adresse initialisiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile netioapi.h (include Iphlpapi.h)
Bibliothek Iphlpapi.lib
DLL Iphlpapi.dll

Weitere Informationen

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SOCKADDR_INET

SetIpNetEntry2