Compartir a través de


Función ResolveIpNetEntry2

La función ResolveIpNetEntry2 resuelve la dirección física de una entrada de dirección IP vecina en un equipo local.

Sintaxis

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

Parámetros

  • Fila [in, out]
    Puntero a una entrada de estructura MIB_IPNET_ROW2 para una entrada de dirección IP vecina. Si la devolución es correcta, esta estructura se actualiza con las propiedades de la dirección IP vecina.

  • SourceAddress [in, opcional]
    Puntero a una dirección IP de origen opcional que se usa para seleccionar la interfaz en la que se envían las solicitudes para la entrada de dirección IP vecina.

Valor devuelto

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

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

Código devuelto Descripción
STATUS_BAD_NETWORK_NAME

No se encuentra el nombre de red especificado. Este error se devuelve si la red con la dirección IP vecina no es accesible.

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_IPNET_ROW2 a la que apunta el parámetro Row no se estableció en una dirección IPv4 o IPv6 válida, o los miembros InterfaceLuid e InterfaceIndex de la estructura MIB_IPNET_ROW2 no se especificaron. Este error también se devuelve si se pasó una dirección de bucle invertido en el miembro Address .

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_IPNET_ROW2 a la que apunta el parámetro Row .

STATUS_NOT_SUPPORTED

No se admite la solicitud. Este error se devuelve si no se encuentra ninguna pila IPv4 en el equipo local y se especificó una dirección IPv4 en el miembro Address de la estructura MIB_IPNET_ROW2 a la que apunta el parámetro Row , o si no se encuentra ninguna pila IPv6 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 del error devuelto.

Observaciones

La función ResolveIpNetEntry2 se usa para resolver la dirección física de una entrada de dirección IP vecina en un equipo local. Esta función vacía cualquier entrada de vecino existente que coincida con la dirección IP de la interfaz y, a continuación, resuelve la dirección física (MAC) enviando solicitudes de ARP para una dirección IPv4 o solicitudes de solicitud de vecino (NS) para una dirección IPv6. Si se especifica el parámetro SourceAddress , ResolveIpNetEntry2 selecciona la interfaz con esta dirección IP de origen para enviar las solicitudes. Si no se especifica el parámetro SourceAddress (se pasó NULL en este parámetro), ResolveIpNetEntry2 selecciona automáticamente la mejor interfaz para enviar las solicitudes.

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

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

  • InterfaceLuid o InterfaceIndex
    Estos miembros se usan en el orden que se muestra 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 la dirección IP que se pasa en el miembro Address de la estructura MIB_IPNET_ROW2 a la que apunta el parámetro Row es un duplicado de una dirección IP vecina existente en la interfaz, la función ResolveIpNetEntry2 vacía la entrada existente antes de resolver la dirección IP.

En la salida, cuando la llamada se realiza correctamente, ResolveIpNetEntry2 recupera las demás propiedades de la dirección IP vecina y rellena la estructura MIB_IPNET_ROW2 a la que apunta el parámetro Row . Los miembros PhysicalAddress y PhysicalAddressLength de la estructura MIB_IPNET_ROW2 se inicializan en una dirección física válida.

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

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2