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 |