Função ResolveIpNetEntry2
A função ResolveIpNetEntry2 resolve o endereço físico de uma entrada de endereço IP vizinho em um computador local.
Sintaxe
NETIOAPI_API ResolveIpNetEntry2(
_Inout_ PMIB_IPNET_ROW2 Row,
_In_opt_ const SOCKADDR_INET *SourceAddress
);
Parâmetros
Linha [entrada, saída]
Um ponteiro para uma entrada de estrutura MIB_IPNET_ROW2 para uma entrada de endereço IP vizinho. No retorno bem-sucedido, essa estrutura é atualizada com as propriedades do endereço IP vizinho.SourceAddress [in, opcional]
Um ponteiro para um endereço IP de origem opcional que é usado para selecionar a interface para enviar as solicitações para a entrada de endereço IP vizinho.
Retornar valor
ResolveIpNetEntry2 retornará STATUS_SUCCESS se a função for bem-sucedida.
Se a função falhar, ResolveIpNetEntry2 retornará um dos seguintes códigos de erro:
Código de retorno | Descrição |
---|---|
STATUS_BAD_NETWORK_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. |
STATUS_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 da estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta não foi definido como um endereço IPv4 ou IPv6 válido ou os membros InterfaceLuid e InterfaceIndex da estrutura MIB_IPNET_ROW2 não foram especificados. Esse erro também será retornado se um endereço de loopback tiver sido passado no membro Address . |
STATUS_NOT_FOUND | Não foi possível encontrar a interface especificada. Esse erro será retornado se a função não puder localizar o adaptador de rede especificado pelo membro InterfaceLuid ou InterfaceIndex da estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta. |
STATUS_NOT_SUPPORTED | A solicitação não terá suporte. Esse erro será retornado se nenhuma pilha IPv4 estiver localizada no computador local e um endereço IPv4 tiver sido especificado no membro Address da estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta ou se nenhuma pilha IPv6 estiver localizada no computador local e um endereço IPv6 tiver sido especificado no membro Address . |
Outros | Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado. |
Comentários
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 (NS) para um endereço IPv6. Se o parâmetro SourceAddress for especificado, 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), ResolveIpNetEntry2 selecionará automaticamente a melhor interface para enviar as solicitações.
O driver deve inicializar os membros a seguir da estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta.
Endereço
Defina como um endereço IPv4 ou IPv6 válido e uma família.InterfaceLuid ou InterfaceIndex
Esses membros são usados na ordem listada anteriormente. Portanto, se InterfaceLuid for especificado, esse membro será usado para determinar a interface. Se nenhum valor tiver sido definido para o membro InterfaceLuid (o valor desse membro foi definido como zero), o membro InterfaceIndex será usado em seguida para determinar a interface.
Se o endereço IP passado no membro Address da estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta 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 for bem-sucedida, ResolveIpNetEntry2 recuperará as outras propriedades para o endereço IP vizinho e preencherá a estrutura MIB_IPNET_ROW2 para a qual o parâmetro Row aponta. Os membros PhysicalAddress e PhysicalAddressLength na estrutura MIB_IPNET_ROW2 são inicializados para um endereço físico válido.
Requisitos
Plataforma de destino |
Universal |
Versão |
Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Cabeçalho |
Netioapi.h (inclua Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |