Freigeben über


SetIpNetEntry2-Funktion (netioapi.h)

Die SetIpNetEntry2-Funktion legt die physische Adresse eines vorhandenen Eintrags für benachbarte IP-Adressen auf dem lokalen Computer fest.

Syntax

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpNetEntry2(
  [in, out] PMIB_IPNET_ROW2 Row
);

Parameter

[in, out] Row

Ein Zeiger auf einen MIB_IPNET_ROW2 Struktureintrag für einen benachbarten IP-Adresseintrag.

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_ACCESS_DENIED
Zugriff verweigert.“ Dieser Fehler wird unter folgenden Bedingungen zurückgegeben: Dem Benutzer fehlen die erforderlichen Administratorrechte auf dem lokalen Computer, oder die Anwendung wird nicht in einer erweiterten Shell als integrierter Administrator (RunAs-Administrator) ausgeführt.
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 Unicast-, Anycast- oder Multicast-IPv4- oder IPv6-Adresse festgelegt wurde. Die Member PhysicalAddress und PhysicalAddressLength des MIB_IPNET_ROW2 , auf die vom Row-Parameter verwiesen wird, wurden nicht auf eine gültige physische Adresse festgelegt. oder die InterfaceLuid - oder InterfaceIndex-Member der MIB_IPNET_ROW2 , auf die 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 SetIpNetEntry2-Funktion ist unter Windows Vista und höher definiert.

Die SetIpNetEntry2-Funktion wird verwendet, um die physische Adresse für einen vorhandenen Eintrag für benachbarte IP-Adressen auf einem lokalen Computer festzulegen.

Das Adresselement in der MIB_IPNET_ROW2-Struktur , auf die der Row-Parameter verweist, muss für eine gültige Unicast-, Anycast- oder Multicast-IPv4- oder IPv6-Adresse und -Familie initialisiert werden. Die Member PhysicalAddress und PhysicalAddressLength in der MIB_IPNET_ROW2 Struktur, auf die vom Row-Parameter verwiesen wird, müssen für eine gültige physische Adresse 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.

Die SetIpNetEntry2-Funktion schlägt fehl, wenn die IP-Adresse, die im Adresselement des MIB_IPNET_ROW2 übergeben wird, auf die der Row-Parameter verweist, keine vorhandene benachbarte IP-Adresse auf der angegebenen Schnittstelle ist.

Die SetIpNetEntry2-Funktion kann nur von einem Benutzer aufgerufen werden, der als Mitglied der Gruppe Administratoren angemeldet ist. Wenn SetIpNetEntry2 von einem Benutzer aufgerufen wird, der kein Mitglied der Gruppe Administratoren ist, schlägt der Funktionsaufruf fehl, und ERROR_ACCESS_DENIED wird zurückgegeben.

Die SetIpNetEntry2-Funktion kann auch aufgrund der Benutzerkontensteuerung (User Account Control, UAC) unter Windows Vista und höher fehlschlagen. Wenn eine Anwendung, die diese Funktion enthält, von einem Benutzer ausgeführt wird, der nicht als mitglied der Gruppe Administratoren als der integrierte Administrator angemeldet ist, schlägt dieser Aufruf fehl, es sei denn, die Anwendung wurde in der Manifestdatei mit einem requestedExecutionLevel-Wert gekennzeichnet, der auf requireAdministrator festgelegt ist. Wenn der Anwendung diese Manifestdatei fehlt, muss ein Benutzer, der sich als anderes Mitglied der Administratorgruppe als der integrierte Administrator angemeldet hat, die Anwendung dann in einer erweiterten Shell als integrierter Administrator (RunAs-Administrator) ausführen, damit diese Funktion erfolgreich ist.

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

ResolveIpNetEntry2