Freigeben über


ResolveIpNetEntry2-Funktion

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

Syntax

NETIOAPI_API ResolveIpNetEntry2(
  _Inout_        PMIB_IPNET_ROW2 Row,
  _In_opt_ const SOCKADDR_INET   *SourceAddress
);

Parameter

  • Zeile [ein, ausgehend]
    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.

  • SourceAddress [in, optional]
    Ein Zeiger auf eine optionale Quell-IP-Adresse, die zum Auswählen der Schnittstelle zum Senden der Anforderungen für den Ip-Adresseintrag des Nachbarn verwendet wird.

Rückgabewert

ResolveIpNetEntry2 gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.

Wenn die Funktion fehlschlägt, gibt ResolveIpNetEntry2 einen der folgenden Fehlercodes zurück:

Rückgabecode Beschreibung
STATUS_BAD_NETWORK_NAME

„Der Netzwerkname wurde nicht gefunden.“ Dieser Fehler wird zurückgegeben, wenn das Netzwerk mit der benachbarten IP-Adresse nicht erreichbar ist.

STATUS_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, der Address-Member der MIB_IPNET_ROW2-Struktur , auf die der Row-Parameter verweist, nicht auf eine gültige IPv4- oder IPv6-Adresse festgelegt wurde oder interfaceLuid - und InterfaceIndex-Member der MIB_IPNET_ROW2-Struktur nicht angegeben wurden. Dieser Fehler wird auch zurückgegeben, wenn eine Loopbackadresse im Adresselement übergeben wurde.

STATUS_NOT_FOUND

Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die Funktion die Netzwerkschnittstelle nicht finden kann, die vom InterfaceLuid - oder InterfaceIndex-Member der MIB_IPNET_ROW2 Struktur angegeben wird, auf die der Row-Parameter verweist.

STATUS_NOT_SUPPORTED

Die Anforderung wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn sich kein IPv4-Stapel auf dem lokalen Computer befindet und eine IPv4-Adresse im Adresselement der MIB_IPNET_ROW2-Struktur angegeben wurde, auf die der Row-Parameter verweist, oder wenn sich kein IPv6-Stapel auf dem lokalen Computer befindet und im Address-Member eine IPv6-Adresse angegeben wurde.

Andere

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

Bemerkungen

Die ResolveIpNetEntry2-Funktion wird verwendet, um die physische Adresse für einen Nachbar-IP-Adresseintrag auf einem lokalen Computer aufzulösen. Diese Funktion leert alle vorhandenen Nachbareinträge, die mit der IP-Adresse auf der Schnittstelle übereinstimmen, und löst dann die MAC-Adresse auf, indem ARP-Anforderungen für eine IPv4-Adresse oder Neighbor Solicitation-Anforderungen (NS) für eine IPv6-Adresse gesendet werden. Wenn der SourceAddress-Parameter angegeben ist, wählt ResolveIpNetEntry2 die Schnittstelle mit dieser Quell-IP-Adresse aus, an die die Anforderungen gesendet werden sollen. Wenn der SourceAddress-Parameter nicht angegeben ist (NULL wurde in diesem Parameter übergeben), wählt ResolveIpNetEntry2 automatisch die beste Schnittstelle zum Senden der Anforderungen aus.

Ihr Treiber muss die folgenden Member der MIB_IPNET_ROW2-Struktur initialisieren, auf die der Row-Parameter verweist.

  • Adresse
    Legen Sie auf eine gültige IPv4- oder IPv6-Adresse und -Familie fest.

  • InterfaceLuid oder InterfaceIndex
    Diese Member werden in der zuvor aufgeführten Reihenfolge verwendet. Wenn Also InterfaceLuid angegeben ist, wird dieser Member verwendet, um die Schnittstelle zu bestimmen. Wenn kein Wert für das InterfaceLuid-Element festgelegt wurde (der Wert dieses Members wurde auf 0 festgelegt), wird als Nächstes das InterfaceIndex-Element verwendet, um die Schnittstelle zu bestimmen.

Wenn die IP-Adresse, die im Adressmember der MIB_IPNET_ROW2-Struktur übergeben wird, auf die der Row-Parameter verweist, ein Duplikat einer vorhandenen nachbarlichen IP-Adresse auf der Schnittstelle ist, leert die ResolveIpNetEntry2-Funktion den vorhandenen Eintrag, bevor die IP-Adresse aufgelöst wird.

Wenn der Aufruf erfolgreich ist, ruft ResolveIpNetEntry2 bei der Ausgabe 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 werden mit einer gültigen physischen Adresse initialisiert.

Anforderungen

Zielplattform

Universell

Version

Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.

Header

Netioapi.h (netioapi.h einschließen)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Weitere Informationen

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2