Compartilhar via


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 [dentro, fora]
    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, optional]
    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.

Valor de retorno

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 da rede não pode ser 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 linha, o de Endereço membro da estrutura MIB_IPNET_ROW2 à qual o parâmetro Row aponta não foi definido como um endereço IPv4 ou IPv6 válido, ou ambos InterfaceLuid e membros 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 endereço.

STATUS_NOT_FOUND

Não foi possível encontrar a interface especificada. Esse erro será retornado se a função não puder encontrar a interface de rede especificada pelo InterfaceLuid ou membro interfaceIndex da estrutura MIB_IPNET_ROW2 à qual o parâmetro linha aponta.

STATUS_NOT_SUPPORTED

Não há suporte para a solicitação. Esse erro será retornado se nenhuma pilha IPv4 estiver localizada no computador local e um endereço IPv4 tiver sido especificado no Address membro da estrutura MIB_IPNET_ROW2 à 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.

Observações

A função ResolveIpNetEntry2 é usada para resolver 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 seguintes membros da estrutura MIB_IPNET_ROW2 à qual o parâmetro Linha 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 que é passado no endereço membro da estrutura MIB_IPNET_ROW2 à qual o parâmetro Row aponta é uma duplicata de um endereço IP vizinho existente na interface, a função ResolveIpNetEntry2 libera 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 à qual o parâmetro Row aponta. Os membros PhysicalAddress e PhysicalAddressLength na estrutura MIB_IPNET_ROW2 são inicializados em 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

Consulte também

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2