Compartir a través de


Función SetUnicastIpAddressEntry

La función SetUnicastIpAddressEntry establece las propiedades de una entrada de dirección IP de unidifusión existente en un equipo local.

Sintaxis

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

Parámetros

  • Fila [in]
    Puntero a una entrada de estructura de MIB_UNICASTIPADDRESS_ROW para una entrada de dirección IP de unidifusión existente.

Valor devuelto

SetUnicastIpAddressEntry devuelve STATUS_SUCCESS si la función se realiza correctamente.

Si se produce un error en la función, SetUnicastIpAddressEntry devuelve uno de los siguientes códigos de error:

Código devuelto Descripción
STATUS_INVALID_PARAMETER

Se pasó un parámetro no válido a la función. Este error se devuelve si se pasa un puntero NULL en el parámetro Row , el miembro Address de la estructura MIB_UNICASTIPADDRESS_ROW que el parámetro Row apunta a no se estableció en una dirección IPv4 o IPv6 de unidifusión válida, o los miembros InterfaceLuid e InterfaceIndex de la estructura de MIB_UNICASTIPADDRESS_ROW no se especificaron.

STATUS_NOT_FOUND

No se encontró la interfaz especificada. Este error se devuelve si la función no encuentra la interfaz de red especificada por el miembro InterfaceLuid o InterfaceIndex de la estructura MIB_UNICASTIPADDRESS_ROW a la que apunta el parámetro Row .

STATUS_NOT_SUPPORTED

No se admite la solicitud. Este error se devuelve si no hay ninguna pila IPv4 ubicada en el equipo local y se especificó una dirección IPv4 en el miembro Address de la estructura MIB_UNICASTIPADDRESS_ROW a la que apunta el parámetro Row o si no hay ninguna pila IPv6 ubicada en el equipo local y se especificó una dirección IPv6 en el miembro Address .

Otros

Use la función FormatMessage para obtener la cadena de mensaje para el error devuelto.

Observaciones

La función GetUnicastIpAddressEntry se usa normalmente para recuperar una entrada de estructura de MIB_UNICASTIPADDRESS_ROW existente que se va a modificar. A continuación, un controlador puede cambiar los miembros de la entrada MIB_UNICASTIPADDRESS_ROW que quiere modificar y, a continuación, llamar a la función SetUnicastIpAddressEntry .

Un controlador puede llamar a la función InitializeUnicastIpAddressEntry para inicializar los miembros de una entrada de estructura de MIB_UNICASTIPADDRESS_ROW con valores predeterminados antes de realizar cambios. Sin embargo, el controlador normalmente guarda el miembro InterfaceLuid o InterfaceIndex antes de llamar a InitializeUnicastIpAddressEntry y restaura uno de estos miembros después de la llamada.

El controlador debe inicializar los siguientes miembros de la estructura MIB_UNICASTIPADDRESS_ROW a los que apunta el parámetro Row .

  • Dirección
    Establézcalo en una dirección y familia IPv6 IPv4 o IPv6 válida.

  • InterfaceLuid o InterfaceIndex
    Estos miembros se usan en el orden indicado anteriormente. Por lo tanto, si se especifica InterfaceLuid , este miembro se usa para determinar la interfaz. Si no se estableció ningún valor para el miembro InterfaceLuid (el valor de este miembro se estableció en cero), el miembro InterfaceIndex se usa a continuación para determinar la interfaz.

Si el miembro OnLinkPrefixLength de la estructura MIB_UNICASTIPADDRESS_ROW a la que apunta el parámetro Row se establece en 255, SetUnicastIpAddressEntry establece las propiedades de dirección IP de unidifusión para que el miembro OnLinkPrefixLength sea igual a la longitud de la dirección IP. Para una dirección IPv4 de unidifusión, OnLinkPrefixLength se establece en 32. Para una dirección IPv6 de unidifusión, OnLinkPrefixLength se establece en 128. Si esta configuración daría como resultado la máscara de subred incorrecta para una dirección IPv4 o el prefijo de vínculo incorrecto para una dirección IPv6, el controlador debe establecer este miembro en el valor correcto antes de llamar a SetUnicastIpAddressEntry.

SetUnicastIpAddressEntry omite los miembros DadState, ScopeId y CreationTimeStamp de la estructura MIB_UNICASTIPADDRESS_ROW a la que apunta el parámetro Row . La pila de red establece estos miembros y no se puede cambiar mediante la función SetUnicastIpAddressEntry . El miembro ScopeId viene determinado automáticamente por la interfaz en la que se agregó la dirección.

Requisitos

Plataforma de destino

Universal

Versión

Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.

Encabezado

Netioapi.h (incluya Netioapi.h)

Biblioteca

Netio.lib

IRQL

< DISPATCH_LEVEL

Consulte también

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange