Compartilhar via


estrutura MIB_IPINTERFACE_ROW (netioapi.h)

A estrutura MIB_IPINTERFACE_ROW armazena informações de gerenciamento de interface para uma família de endereços IP específica em um adaptador de rede.

Sintaxe

typedef struct _MIB_IPINTERFACE_ROW {
  ADDRESS_FAMILY                 Family;
  NET_LUID                       InterfaceLuid;
  NET_IFINDEX                    InterfaceIndex;
  ULONG                          MaxReassemblySize;
  ULONG64                        InterfaceIdentifier;
  ULONG                          MinRouterAdvertisementInterval;
  ULONG                          MaxRouterAdvertisementInterval;
  BOOLEAN                        AdvertisingEnabled;
  BOOLEAN                        ForwardingEnabled;
  BOOLEAN                        WeakHostSend;
  BOOLEAN                        WeakHostReceive;
  BOOLEAN                        UseAutomaticMetric;
  BOOLEAN                        UseNeighborUnreachabilityDetection;
  BOOLEAN                        ManagedAddressConfigurationSupported;
  BOOLEAN                        OtherStatefulConfigurationSupported;
  BOOLEAN                        AdvertiseDefaultRoute;
  NL_ROUTER_DISCOVERY_BEHAVIOR   RouterDiscoveryBehavior;
  ULONG                          DadTransmits;
  ULONG                          BaseReachableTime;
  ULONG                          RetransmitTime;
  ULONG                          PathMtuDiscoveryTimeout;
  NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
  ULONG                          LinkLocalAddressTimeout;
  ULONG                          ZoneIndices[ScopeLevelCount];
  ULONG                          SitePrefixLength;
  ULONG                          Metric;
  ULONG                          NlMtu;
  BOOLEAN                        Connected;
  BOOLEAN                        SupportsWakeUpPatterns;
  BOOLEAN                        SupportsNeighborDiscovery;
  BOOLEAN                        SupportsRouterDiscovery;
  ULONG                          ReachableTime;
  NL_INTERFACE_OFFLOAD_ROD       TransmitOffload;
  NL_INTERFACE_OFFLOAD_ROD       ReceiveOffload;
  BOOLEAN                        DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;

Membros

Family

Tipo: ADDRESS_FAMILY

A família de endereços. Os valores possíveis para a família de endereços são listados no arquivo de cabeçalho Winsock2.h . Observe que os valores para a família de endereços AF_ e PF_ constantes da família de protocolos são idênticos (por exemplo, AF_INET e PF_INET), portanto, qualquer constante pode ser usada.

No Windows Vista e posterior, bem como no SDK do Windows, a organização dos arquivos de cabeçalho foi alterada e os valores possíveis para esse membro são definidos no arquivo de cabeçalho Ws2def.h. Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente no Winsock2.h e nunca deve ser usado diretamente.

Os valores com suporte no momento são AF_INET ou AF_INET6, que são os formatos de família de endereços da Internet para IPv4 e IPv6.

Valor Significado
AF_UNSPEC
0
A família de endereços não é especificada.
AF_INET
2
A família de endereços IPv4 (Protocolo de Internet versão 4).
AF_INET6
23
A família de endereços IPv6 (Internet Protocol versão 6).

InterfaceLuid

Tipo: NET_LUID

O LUID (identificador exclusivo local) para o adaptador de rede.

InterfaceIndex

Tipo: NET_IFINDEX

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

MaxReassemblySize

Tipo: ULONG

O tamanho máximo da remontagem, em bytes, de um pacote IP fragmentado. No momento, esse membro está definido como zero e reservado para uso futuro.

InterfaceIdentifier

Tipo: ULONG64

Reservado para uso futuro. No momento, esse membro está definido como zero.

MinRouterAdvertisementInterval

Tipo: ULONG

O intervalo mínimo de anúncio do roteador, em milissegundos, nessa interface de IP. Esse membro usa como padrão 200 para IPv6. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.

MaxRouterAdvertisementInterval

Tipo: ULONG

O intervalo máximo de anúncio do roteador, em milissegundos, nessa interface de IP. Esse membro usa como padrão 600 para IPv6. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.

AdvertisingEnabled

Tipo: BOOLEAN

Um valor que indica se a publicidade do roteador está habilitada nessa interface de IP. O padrão para IPv6 é que o anúncio do roteador só será habilitado se a interface estiver configurada para atuar como um roteador. O padrão para IPv4 é que o anúncio do roteador está desabilitado.

ForwardingEnabled

Tipo: BOOLEAN

Um valor que indica se o encaminhamento de IP está habilitado nessa interface de IP.

WeakHostSend

Tipo: BOOLEAN

Um valor que indica se o modo de envio de host fraco está habilitado nessa interface de IP.

WeakHostReceive

Tipo: BOOLEAN

Um valor que indica se o modo de recebimento de host fraco está habilitado nessa interface de IP.

UseAutomaticMetric

Tipo: BOOLEAN

Um valor que indica se a interface IP usa a métrica automática.

UseNeighborUnreachabilityDetection

Tipo: BOOLEAN

Um valor que indica se a detecção de inacessibilidade do vizinho está habilitada nessa interface de IP.

ManagedAddressConfigurationSupported

Tipo: BOOLEAN

Um valor que indica se a interface IP dá suporte à configuração de endereço gerenciado usando DHCP.

OtherStatefulConfigurationSupported

Tipo: BOOLEAN

Um valor que indica se a interface ip dá suporte a outra configuração com estado (configuração de rota, por exemplo).

AdvertiseDefaultRoute

Tipo: BOOLEAN

Um valor que indica se a interface IP anuncia a rota padrão. Esse membro só será aplicável se o membro AdvertisingEnabled estiver definido como TRUE.

RouterDiscoveryBehavior

Tipo: NL_ROUTER_DISCOVERY_BEHAVIOR

O comportamento de descoberta do roteador. Esse membro pode ser um dos valores do tipo de enumeração NL_ROUTER_DISCOVERY_BEHAVIOR definido no arquivo de cabeçalho Nldef.h . O membro é descrito em RFC 2461. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2461.txt.

Valor Significado
RouterDiscoveryDisabled
0
A descoberta do roteador está desabilitada.
RouterDiscoveryEnabled
1
A descoberta do roteador está habilitada. Esse é o valor padrão para IPv6.
RouterDiscoveryDhcp
2
A descoberta do roteador é configurada com base no DHCP. Esse é o valor padrão para IPv4.
RouterDiscoveryUnchanged
-1
Esse valor é usado ao definir as propriedades de uma interface de IP quando o valor da descoberta do roteador deve ficar inalterado.

DadTransmits

Tipo: ULONG

O número de mensagens consecutivas enviadas ao executar a detecção de endereço duplicado em um endereço IP unicast provisório. Um valor zero indica que a detecção de endereço duplicado não é executada em endereços IP provisórios. Um valor de um indica uma única transmissão sem retransmissões de acompanhamento. Para IPv4, o padrão para esse membro é 3. Para IPv6, o padrão para esse membro é 1. Para IPv6, essas mensagens serão enviadas como solicitações de solicitação de vizinho. Esse membro é definido como DupAddrDetectTransmits no RFC 2462. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2462.txt.

BaseReachableTime

Tipo: ULONG

A base para tempo acessível aleatório, em milissegundos. O membro é descrito em RFC 2461. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2461.txt.

RetransmitTime

Tipo: ULONG

O tempo limite de solicitação do vizinho, em milissegundos. O membro é descrito no RFC 2461. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2461.txt.

PathMtuDiscoveryTimeout

Tipo: ULONG

O tempo limite de descoberta de MTU do caminho, em milissegundos.

LinkLocalAddressBehavior

Tipo: NL_LINK_LOCAL_ADDRESS_BEHAVIOR

O comportamento do endereço local do link. Esse membro pode ser um dos valores do tipo de enumeração NL_LINK_LOCAL_ADDRESS_BEHAVIOR definido no arquivo de cabeçalho Nldef.h .

Valor Significado
LinkLocalAlwaysOff
0
Nunca use um endereço IP local do link.
LinkLocalDelayed
1
Use um endereço IP local do link somente se nenhum outro endereço estiver disponível. Essa é a configuração padrão para uma interface IPv4.
LinkLocalAlwaysOn
2
Sempre use um endereço IP local do link. Essa é a configuração padrão para uma interface IPv6.
LinkLocalUnchanged
-1
Esse valor é usado ao definir as propriedades de uma interface IP quando o valor do comportamento do endereço local do link deve ser inalterado.

LinkLocalAddressTimeout

Tipo: ULONG

O tempo limite do endereço IP local do link, em milissegundos.

ZoneIndices[ScopeLevelCount]

Tipo: ULONG[ScopeLevelCount]

Uma matriz que especifica a parte de zona das IDs de escopo.

SitePrefixLength

Tipo: ULONG

O comprimento do prefixo do site, em bits, do endereço da interface IP. O comprimento, em bits, do prefixo do site ou da parte de rede do endereço da interface IP. Para um endereço IPv4, qualquer valor maior que 32 é um valor inválido. Para um endereço IPv6, qualquer valor maior que 128 é um valor inválido. Um valor de 255 é comumente usado para representar um valor ilegal.

Metric

Tipo: ULONG

A métrica da interface. Observe que a métrica de rota real usada para calcular a preferência de rota é a soma do deslocamento de métrica de rota especificado no membro Métrica da estrutura de MIB_IPFORWARD_ROW2 e a métrica de interface especificada neste membro.

NlMtu

Tipo: ULONG

O tamanho da MTU da camada de rede, em bytes.

Connected

Tipo: BOOLEAN

Um valor que indica se a interface está conectada a um ponto de acesso de rede.

SupportsWakeUpPatterns

Tipo: BOOLEAN

Um valor que especifica se o adaptador de rede dá suporte a Wake on LAN.

SupportsNeighborDiscovery

Tipo: BOOLEAN

Um valor que especifica se a interface IP dá suporte à descoberta de vizinhos.

SupportsRouterDiscovery

Tipo: BOOLEAN

Um valor que especifica se a interface IP dá suporte à descoberta do roteador.

ReachableTime

Tipo: ULONG

O tempo limite acessível, em milissegundos.

TransmitOffload

Tipo: NL_INTERFACE_OFFLOAD_ROD

Um conjunto de sinalizadores que indicam os recursos de descarregamento de transmissão para a interface IP. A estrutura NL_INTERFACE_OFFLOAD_ROD é definida no arquivo de cabeçalho Nldef.h .

ReceiveOffload

Tipo: NL_INTERFACE_OFFLOAD_ROD

Um conjunto de sinalizadores que indicam os recursos de descarregamento de recebimento para a interface IP. A estrutura NL_INTERFACE_OFFLOAD_ROD é definida no arquivo de cabeçalho Nldef.h .

DisableDefaultRoutes

Tipo: BOOLEAN

Um valor que indica se o uso da rota padrão na interface deve ser desabilitado. Esse membro pode ser usado por clientes VPN para restringir o túnel dividido.

Comentários

A estrutura MIB_IPINTERFACE_ROW é definida no Windows Vista e posterior.

Os membros Family, InterfaceLuid e InterfaceIndex identificam exclusivamente uma entrada MIB_IPINTERFACE_ROW .

Quando um pacote unicast chega a um host, o IP deve determinar se o pacote está destinado localmente (seu destino corresponde a um endereço atribuído a uma interface do host). As implementações de IP que seguem um modelo de host fraco aceitam qualquer pacote destinado localmente, independentemente da interface na qual o pacote foi recebido. As implementações de IP que seguem o modelo de host forte só aceitam pacotes destinados localmente se o endereço de destino no pacote corresponder a um endereço atribuído à interface na qual o pacote foi recebido. O modelo de host fraco fornece melhor conectividade de rede. No entanto, ele também torna os hosts suscetíveis a ataques de rede multihome.

A implementação atual do IPv4 no Windows Server 2003 e no Windows XP usa o modelo de host fraco. Nesse caso, todos os pacotes unicast são enviados para fora da interface com a métrica mais baixa para uma rota.

A pilha TCP/IP no Windows Vista e posterior dá suporte ao modelo de host forte para IPv4 e IPv6 e é configurada para usar o modo de host forte por padrão (os membros WeakHostReceive e WeakHostSend são definidos como FALSE). Com o modo de host forte, um pacote unicast pode ser enviado uma interface específica que não tem a métrica mais baixa para uma rota associando o soquete ao endereço de origem da interface específica.

A pilha TCP/IP no Windows Vista e posteriores podem ser configuradas para usar um modelo de host fraco.

Uma métrica é um valor atribuído a uma rota IP para um adaptador de rede específico que identifica o custo associado ao uso dessa rota. Por exemplo, a métrica pode ser valorizada em termos de velocidade do link, contagem de saltos ou atraso de tempo. A métrica automática é um recurso no Windows XP e posterior que configura automaticamente a métrica para as rotas locais baseadas na velocidade do link. O recurso de métrica automática é habilitado por padrão (o UseAutomaticMetric é definido como TRUE) no Windows XP e posterior. Ele também pode ser configurado manualmente para atribuir uma métrica específica a uma rota IP.

O recurso de métrica automática pode ser útil quando a tabela de roteamento contém várias rotas para o mesmo destino. Por exemplo, um computador com um adaptador de rede de 10 megabits e um adaptador de rede de 100 megabits tem um gateway padrão configurado em ambos os adaptadores de rede. Quando UseAutomaticMetric for TRUE, esse recurso poderá forçar todo o tráfego destinado à Internet, por exemplo, a usar o adaptador de rede mais rápido disponível.

A métrica de interface especificada no membro Métrica representa apenas a métrica da interface. A métrica de roteamento completa é uma combinação dessa métrica de interface adicionada ao deslocamento de métrica de rota especificado no membro Métrica da estrutura MIB_IPFORWARD_ROW2 de uma entrada de rota especificada nessa interface.

O acesso simultâneo não privilegiado a várias redes de diferentes requisitos de segurança cria uma falha de segurança e permite que um aplicativo sem privilégios retransmitisse dados acidentalmente entre as duas redes. Um exemplo típico é o acesso simultâneo a uma VPN (rede virtual privada) e à Internet. O Windows Server 2003 e o Windows XP usam um modelo de host fraco, em que o RAS impede esse acesso simultâneo aumentando a métrica de rota de todas as rotas padrão em relação a outras interfaces. Assim, todo o tráfego é roteado por meio da interface VPN, interrompendo outras conectividades de rede.

No Windows Vista e posterior, um modelo de host forte é usado por padrão. Se um endereço IP de origem for especificado na pesquisa de rota usando GetBestRoute2 ou GetBestRoute, a pesquisa de rota será restrita à interface do endereço IP de origem. A modificação da métrica de rota por RAS não tem efeito, pois a lista de rotas potenciais nem sequer tem a rota para a interface VPN, permitindo assim o tráfego para a Internet. O membro DisableDefaultRoutes da estrutura MIB_IPINTERFACE_ROW pode ser usado para desabilitar usando a rota padrão em uma interface. Esse membro pode ser usado como uma medida de segurança por clientes VPN para restringir o túnel dividido quando o túnel dividido não é exigido pelo cliente VPN. Um cliente VPN pode chamar a função SetIpInterfaceEntry para definir o membro DisableDefaultRoutes como TRUE quando necessário. Um cliente VPN pode consultar o estado atual do membro DisableDefaultRoutes chamando a função GetIpInterfaceEntry .

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.

Exemplos

Para exibir um exemplo que recupera a estrutura MIB_IPINTERFACE_TABLE e, em seguida, imprime alguns membros das entradas de estrutura MIB_IPINTERFACE_ROW nesta tabela, consulte a função GetIpInterfaceTable .

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

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry