Função ResolveIpNetEntry2 (netioapi.h)

A função ResolveIpNetEntry2 resolve o endereço físico de uma entrada de endereço IP vizinho no computador local.

Sintaxe

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API ResolveIpNetEntry2(
  [in, out]      PMIB_IPNET_ROW2     Row,
  [in, optional] const SOCKADDR_INET *SourceAddress
);

Parâmetros

[in, out] Row

Um ponteiro para uma entrada de estrutura MIB_IPNET_ROW2 para uma entrada de endereço IP vizinho. No retorno bem-sucedido, essa estrutura será atualizada com as propriedades do endereço IP vizinho.

[in, optional] SourceAddress

Um ponteiro para um endereço IP de origem opcional usado para selecionar a interface para enviar as solicitações para a entrada de endereço IP vizinho.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos códigos de erro a seguir.

Código de retorno Descrição
ERROR_BAD_NET_NAME
O nome de rede não foi encontrado. Esse erro será retornado se a rede com o endereço IP vizinho estiver inacessível.
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se um ponteiro NULL for passado no parâmetro Row , o membro Address do MIB_IPNET_ROW2 apontado pelo parâmetro Row não tiver sido definido como um endereço IPv4 ou IPv6 válido ou os membros InterfaceLuid ou InterfaceIndex do MIB_IPNET_ROW2 apontados pelo parâmetro Row não foram especificados. Esse erro também será retornado se um endereço de loopback tiver sido passado no membro Address .
ERROR_NOT_FOUND
Não foi possível encontrar a interface especificada. Esse erro será retornado se o adaptador de rede especificado pelo membro InterfaceLuid ou InterfaceIndex do MIB_IPNET_ROW2 apontado pelo parâmetro Row não puder ser encontrado.
ERROR_NOT_SUPPORTED
A solicitação não terá suporte. Esse erro será retornado se nenhuma pilha IPv4 estiver no computador local e um endereço IPv4 tiver sido especificado no membro Address do MIB_IPNET_ROW2 apontado pelo parâmetro Row ou se nenhuma pilha IPv6 estiver no computador local e um endereço IPv6 tiver sido especificado no membro Address .
Outros
Use FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

A função ResolveIpNetEntry2 é definida no Windows Vista e posterior.

A função ResolveIpNetEntry2 é usada para resolve o endereço físico de uma entrada de endereço IP vizinho em um computador local. Essa função libera qualquer entrada de vizinho existente que corresponda ao endereço IP na interface e resolve o endereço MAC (endereço físico) enviando solicitações ARP para um endereço IPv4 ou solicitações de solicitação de vizinho para um endereço IPv6. Se o parâmetro SourceAddress for especificado, a função ResolveIpNetEntry2 selecionará a interface com esse endereço IP de origem para enviar as solicitações. Se o parâmetro SourceAddress não for especificado (NULL foi passado nesse parâmetro), a função ResolveIpNetEntry2 selecionará automaticamente a melhor interface para enviar as solicitações.

O membro Address na estrutura MIB_IPNET_ROW2 apontada pelo parâmetro Row deve ser inicializado para um endereço IPv4 ou IPv6 válido e família. Além disso, pelo menos um dos seguintes membros na estrutura MIB_IPNET_ROW2 apontado para o parâmetro Row deve ser inicializado para a interface: InterfaceLuid ou InterfaceIndex.

Os campos são usados na ordem listada acima. Portanto, se InterfaceLuid for especificado, esse membro será usado para determinar a interface na qual adicionar o endereço IP unicast. Se nenhum valor tiver sido definido para o membro InterfaceLuid (os valores desse membro foram definidos como zero), o membro InterfaceIndex será usado em seguida para determinar a interface.

Se o endereço IP passado no membro Address do MIB_IPNET_ROW2 apontado pelo parâmetro Row for uma duplicata de um endereço IP vizinho existente na interface, a função ResolveIpNetEntry2 liberará a entrada existente antes de resolver o endereço IP.

Na saída quando a chamada é bem-sucedida, ResolveIpNetEntry2 recupera as outras propriedades para o endereço IP vizinho e preenche a estrutura MIB_IPNET_ROW2 apontada pelo parâmetro Row . Os membros PhysicalAddress e PhysicalAddressLength na estrutura MIB_IPNET_ROW2 apontada pelo parâmetro Row serão inicializados para um endereço físico válido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho netioapi.h (inclua Iphlpapi.h)
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SOCKADDR_INET

SetIpNetEntry2