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.
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.
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 .
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) |