Função GetIpInterfaceEntry
A função GetIpInterfaceEntry recupera informações de IP para a interface especificada em um computador local.
Sintaxe
NETIOAPI_API GetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Parâmetros
- Linha [entrada, saída]
Um ponteiro para uma estrutura MIB_IPINTERFACE_ROW que, no retorno bem-sucedido, recebe informações de uma interface no computador local. Na entrada, o driver deve definir o membro InterfaceLuid ou o membro InterfaceIndex do MIB_IPINTERFACE_ROW para a interface para a qual recuperar informações.
Retornar valor
GetIpInterfaceEntry retornará STATUS_SUCCESS se a função for bem-sucedida.
Se a função falhar, GetIpInterfaceEntry retornará um dos seguintes códigos de erro:
Código de retorno | Descrição |
---|---|
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 Family da estrutura MIB_IPINTERFACE_ROW para a qual o parâmetro Row aponta não foi especificado como AF_INET ou AF_INET6 ou os membros InterfaceLuid e InterfaceIndex da estrutura MIB_IPINTERFACE_ROW não foram especificados. |
STATUS_NOT_FOUND | Não foi possível encontrar a interface especificada. Esse erro será retornado se a função não puder encontrar o adaptador de rede especificado pelo membro InterfaceLuid ou InterfaceIndex da estrutura MIB_IPINTERFACE_ROW para a qual o parâmetro Row aponta. |
Outros | Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado. |
Comentários
Na entrada, o driver deve inicializar os seguintes membros da estrutura MIB_IPINTERFACE_ROW para a qual o parâmetro Row aponta.
Família
Defina como AF_INET ou AF_INET6.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.
Na saída, GetIpInterfaceEntry preenche os membros restantes da estrutura MIB_IPINTERFACE_ROW para a qual o parâmetro Row aponta.
O driver deve usar a função InitializeIpInterfaceEntry para inicializar os campos de uma entrada de estrutura MIB_IPINTERFACE_ROW com valores padrão. Em seguida, um driver pode alterar os campos na entrada MIB_IPINTERFACE_ROW que deseja modificar e, em seguida, chamar a função SetIpInterfaceEntry .
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 driver 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. Os sistemas operacionais Windows Server 2003 e Windows XP usam um modelo de host fraco, em que o RAS (Serviço de Acesso Remoto) impede esse acesso simultâneo aumentando a métrica de rota de todas as rotas padrão em outras interfaces. Portanto, todo o tráfego é roteado por meio da interface VPN, interrompendo outra conectividade de rede.
No Windows Vista e versões posteriores dos sistemas operacionais Windows, por padrão, um modelo de host forte é usado. Se um endereço IP de origem for especificado na pesquisa de rota usando a função GetBestRoute2 , 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 porque a lista de rotas potenciais nem sequer tem a rota para a interface VPN, o que permite o tráfego para a Internet. Seu driver pode usar o membro DisableDefaultRoutes do MIB_IPINTERFACE_ROW para desabilitar usando a rota padrão em uma interface. Os clientes VPN podem usar esse membro como uma medida de segurança 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 for necessário. Um cliente VPN pode consultar o estado atual do membro DisableDefaultRoutes chamando a função GetIpInterfaceEntry .
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 |