Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
|---|---|
|
„Der Netzwerkname wurde nicht gefunden.“ Dieser Fehler wird zurückgegeben, wenn das Netzwerk mit der benachbarten IP-Adresse nicht erreichbar ist. |
|
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. |
|
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. |
|
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. |
|
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 |