Compartilhar via


estrutura MIB_IPNET_ROW2 (netioapi.h)

A estrutura MIB_IPNET_ROW2 armazena informações sobre um endereço IP vizinho.

Sintaxe

typedef struct _MIB_IPNET_ROW2 {
  SOCKADDR_INET     Address;
  NET_IFINDEX       InterfaceIndex;
  NET_LUID          InterfaceLuid;
  UCHAR             PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
  ULONG             PhysicalAddressLength;
  NL_NEIGHBOR_STATE State;
  union {
    struct {
      BOOLEAN IsRouter : 1;
      BOOLEAN IsUnreachable : 1;
    };
    UCHAR Flags;
  };
  union {
    ULONG LastReachable;
    ULONG LastUnreachable;
  } ReachabilityTime;
} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;

Membros

Address

Tipo: SOCKADDR_INET

O endereço IP vizinho. Esse membro pode ser um endereço IPv6 ou um endereço IPv4.

InterfaceIndex

Tipo: NET_IFINDEX

O valor do índice local para o adaptador de rede associado a esse endereço IP. Esse valor de índice pode ser alterado quando um adaptador de rede é desabilitado e habilitado, ou em outras circunstâncias, e não deve ser considerado persistente.

InterfaceLuid

Tipo: NET_LUID

O LUID (identificador local exclusivo) para o adaptador de rede associado a esse endereço IP.

PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]

Tipo: UCHAR[IF_MAX_PHYS_ADDRESS_LENGTH]

O endereço de hardware físico do adaptador para o adaptador de rede associado a esse endereço IP.

PhysicalAddressLength

Tipo: ULONG

O comprimento, em bytes, do endereço de hardware físico especificado pelo membro PhysicalAddress . O valor máximo com suporte é de 32 bytes.

State

Tipo: NL_NEIGHBOR_STATE

O estado de um endereço IP de vizinho de rede, conforme definido no RFC 2461, seção 7.3.2. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2461.txt. Esse membro pode ser um dos valores do tipo de enumeração NL_NEIGHBOR_STATE definido no arquivo de cabeçalho Nldef.h .

Valor Significado
NlnsUnreachable
O endereço IP está inacessível.
NlnsIncomplete
A resolução de endereços está em andamento e o endereço da camada de vínculo do vizinho ainda não foi determinado. Especificamente para IPv6, uma solicitação de vizinho foi enviada para o endereço IP multicast de nó solicitado do destino, mas o anúncio de vizinho correspondente ainda não foi recebido.
NlnsProbe
O vizinho não é mais conhecido por ser acessível e as investigações estão sendo enviadas para verificar a acessibilidade. Para iPv6, uma confirmação de acessibilidade está sendo buscada ativamente pela retransmissão de investigações de solicitação de vizinho unicast em intervalos regulares até que uma confirmação de acessibilidade seja recebida.
NlnsDelay
O vizinho não é mais conhecido por ser acessível, e o tráfego foi recentemente enviado para o vizinho. Em vez de investigar o vizinho imediatamente, no entanto, atrase o envio de investigações por um curto período, a fim de dar aos protocolos de camada superior a chance de fornecer confirmação de acessibilidade. Para IPv6, mais tempo passou do que o especificado no membro ReachabilityTime.ReachableTime desde que a última confirmação positiva foi recebida de que o caminho de encaminhamento estava funcionando corretamente e um pacote foi enviado. Se nenhuma confirmação de acessibilidade for recebida dentro de um período de tempo (usado para atrasar a primeira investigação) de entrar no estado NlnsDelay , uma solicitação vizinha será enviada e o membro do Estado será alterado para NlnsProbe.
NlnsStale
O vizinho não é mais conhecido por ser acessível, mas até que o tráfego seja enviado para o vizinho, nenhuma tentativa deve ser feita para verificar sua acessibilidade. Para IPv6, mais tempo passou do que o especificado no membro ReachabilityTime.ReachableTime desde que a última confirmação positiva foi recebida de que o caminho de encaminhamento estava funcionando corretamente. Embora o Estado seja NlnsStale, nenhuma ação ocorre até que um pacote seja enviado.

O estado nlnsStale é inserido ao receber uma mensagem de descoberta de vizinho não solicitada que atualiza o endereço IP armazenado em cache. O recebimento dessa mensagem não confirma a acessibilidade e a inserção do estado NlnsStale garante que a acessibilidade seja verificada rapidamente se a entrada estiver realmente sendo usada. No entanto, a acessibilidade não é realmente verificada até que a entrada seja realmente usada.

NlnsReachable
O vizinho é conhecido por ter sido acessível recentemente (em dezenas de segundos atrás). Para IPv6, uma confirmação positiva foi recebida dentro do tempo especificado no membro ReachabilityTime.ReachableTime de que o caminho de encaminhamento para o vizinho estava funcionando corretamente. Embora o Estado seja NlnsReachable, nenhuma ação especial ocorre à medida que os pacotes são enviados.
NlnsPermanent
O endereço IP é um endereço permanente.
NlnsMaximum
O valor máximo possível para o tipo de enumeração NL_NEIGHBOR_STATE . Esse não é um valor legal para o membro do Estado .

IsRouter

Tipo: BOOLEAN

Um valor que indica se esse endereço IP é um roteador.

IsUnreachable

Tipo: BOOLEAN

Um valor que indica se esse endereço IP é inacessível.

Flags

Tipo: UCHAR

Um conjunto de sinalizadores que indicam se o endereço IP é um roteador e se o endereço IP é inacessível.

ReachabilityTime

ReachabilityTime.LastReachable

Tipo: ULONG O tempo, em milissegundos, em que um nó pressupõe que um vizinho esteja acessível após ter recebido uma confirmação de acessibilidade.

ReachabilityTime.LastUnreachable

Tipo: ULONG O tempo, em milissegundos, em que um nó pressupõe que um vizinho está inacessível depois de não ter recebido uma confirmação de acessibilidade.

Comentários

A estrutura de MIB_IPNET_ROW2 é definida no Windows Vista e posterior.

A função GetIpNetTable2 enumera os endereços IP vizinhos em um sistema local e retorna essas informações em uma estrutura MIB_IPNET_TABLE2 .

Para IPv4, isso inclui endereços determinados usados pelo Protocolo de Resolução de Endereços (ARP). Para IPv6, isso inclui endereços determinados usando o protocolo ND (Descoberta de Vizinhos) para IPv6, conforme especificado no RFC 2461. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2461.txt.

A função GetIpNetEntry2 recupera um único endereço IP vizinho e retorna essas informações em uma estrutura MIB_IPNET_ROW2 .

Observe que o arquivo de cabeçalho Netioapi.h é incluído automaticamente no arquivo de cabeçalho Iphlpapi.h . O arquivo de cabeçalho Netioapi.h nunca deve ser usado diretamente.

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]
Cabeçalho netioapi.h (inclua Iphlpapi.h)

Confira também

CreateIpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET