Freigeben über


SetUnicastIpAddressEntry-Funktion

Die SetUnicastIpAddressEntry-Funktion legt die Eigenschaften eines vorhandenen Unicast-IP-Adresseintrags auf einem lokalen Computer fest.

Syntax

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

Parameter

Rückgabewert

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

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

Rückgabecode Beschreibung
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_UNICASTIPADDRESS_ROW-Struktur , auf die der Row-Parameter verweist, nicht auf eine gültige Unicast-IPv4- oder IPv6-Adresse festgelegt wurde oder interfaceLuid - und InterfaceIndex-Member der MIB_UNICASTIPADDRESS_ROW-Struktur nicht angegeben wurden.

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_UNICASTIPADDRESS_ROW 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 Address-Member der MIB_UNICASTIPADDRESS_ROW-Struktur angegeben wurde, auf die der Row-Parameter verweist, oder wenn sich auf dem lokalen Computer kein IPv6-Stapel 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 GetUnicastIpAddressEntry-Funktion wird in der Regel verwendet, um einen vorhandenen MIB_UNICASTIPADDRESS_ROW Struktureintrag abzurufen, der geändert werden soll. Ein Treiber kann dann die Member im MIB_UNICASTIPADDRESS_ROW Eintrag ändern, den er ändern möchte, und dann die SetUnicastIpAddressEntry-Funktion aufrufen.

Ein Treiber kann die InitializeUnicastIpAddressEntry-Funktion aufrufen, um die Member eines MIB_UNICASTIPADDRESS_ROW-Struktureintrags mit Standardwerten zu initialisieren, bevor Änderungen vorgenommen werden. Der Treiber speichert jedoch in der Regel entweder das Member InterfaceLuid oder InterfaceIndex , bevor InitializeUnicastIpAddressEntry aufgerufen wird, und stellt eines dieser Member nach dem Aufruf wieder her.

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

  • Adresse
    Legen Sie auf eine gültige Unicast-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 das OnLinkPrefixLength-Element der MIB_UNICASTIPADDRESS_ROW Struktur, auf die der Row-Parameter zeigt, auf 255 festgelegt ist, legt SetUnicastIpAddressEntry die Unicast-IP-Adresseigenschaften so fest, dass das OnLinkPrefixLength-Element der Länge der IP-Adresse entspricht. Für eine Unicast-IPv4-Adresse ist OnLinkPrefixLength auf 32 festgelegt. Für eine Unicast-IPv6-Adresse ist OnLinkPrefixLength auf 128 festgelegt. Wenn diese Einstellungen zu einer falschen Subnetzmaske für eine IPv4-Adresse oder zum falschen Linkpräfix für eine IPv6-Adresse führen würden, sollte der Treiber diesen Member auf den richtigen Wert festlegen, bevor SetUnicastIpAddressEntry aufgerufen wird.

SetUnicastIpAddressEntry ignoriert die Member DadState, ScopeId und CreationTimeStamp der MIB_UNICASTIPADDRESS_ROW Struktur, auf die der Row-Parameter verweist. Diese Member werden vom Netzwerkstapel festgelegt und können nicht mithilfe der SetUnicastIpAddressEntry-Funktion geändert werden. Das ScopeId-Element wird automatisch von der Schnittstelle bestimmt, auf der die Adresse hinzugefügt wurde.

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

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange