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 |