Compartilhar via


Função GetIpInterfaceTable

A função GetIpInterfaceTable recupera as entradas da interface IP em um computador local.

Sintaxe

NETIOAPI_API GetIpInterfaceTable(
  _In_  ADDRESS_FAMILY         Family,
  _Out_ PMIB_IPINTERFACE_TABLE *Table
);

Parâmetros

  • Família [in]
    A família de endereços de interfaces IP a serem recuperadas.

    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 as constantes da família de protocolos PF_ são idênticos (por exemplo, AF_INET e PF_INET), para que você possa usar qualquer constante.

    No Windows Vista e versões posteriores dos sistemas operacionais Windows, os valores possíveis para o parâmetro Family são definidos no arquivo de cabeçalho Ws2def.h. Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente em Netioapi.h e você nunca deve usar o Ws2def.h diretamente.

    No momento, há suporte para os seguintes valores para a família de endereços:

    • AF_INET
      A família de endereços IPv4.

    • AF_INET6
      A família de endereços IPv6.

    • AF_UNSPEC
      A família de endereços não é especificada. Quando esse valor é especificado, a função GetIpInterfaceTable retorna a tabela de interface IP que contém entradas IPv4 e IPv6.

  • Tabela [out]
    Um ponteiro para um buffer que recebe a tabela de entradas de interface IP em uma estrutura MIB_IPINTERFACE_TABLE .

Retornar valor

GetIpInterfaceTable retornará STATUS_SUCCESS se a função for bem-sucedida.

Se a função falhar, GetIpInterfaceTable 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 Table ou o parâmetro Family não tiver sido especificado como AF_INET, AF_INET6 ou AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Recursos de memória insuficientes estão disponíveis para concluir a operação.

STATUS_NOT_FOUND

Nenhuma entrada de interface IP, conforme especificado no parâmetro Family , foi encontrada.

STATUS_NOT_SUPPORTED

Não há suporte para a função . Esse erro é retornado quando o transporte IP especificado no parâmetro Address não está configurado no computador local. Esse erro também é retornado em versões do Windows em que essa função não tem suporte.

Outros

Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

A função GetIpInterfaceTable enumera as interfaces IP em um computador local e retorna essas informações em uma estrutura MIB_IPINTERFACE_TABLE .

GetIpInterfaceTable retorna entradas de interface IP em uma estrutura MIB_IPINTERFACE_TABLE no buffer para o qual o parâmetro Table aponta. A estrutura MIB_IPINTERFACE_TABLE contém uma contagem de entradas de interface IP e uma matriz de estruturas de MIB_IPINTERFACE_ROW para cada entrada de interface IP. Quando essas estruturas retornadas não forem mais necessárias, o driver deverá liberar a memória chamando a função FreeMibTable .

O driver deve inicializar o parâmetro Family para AF_INET ou AF_INET6.

Observe que a estrutura MIB_IPINTERFACE_TABLE retornada para a qual o parâmetro Table aponta pode conter preenchimento para alinhamento entre o membro NumEntries e a primeira entrada de matriz MIB_IPINTERFACE_ROW no membro Table da estrutura MIB_IPINTERFACE_TABLE. O preenchimento para alinhamento também pode estar presente entre as entradas da matriz MIB_IPINTERFACE_ROW. Qualquer acesso a uma entrada de matriz MIB_IPINTERFACE_ROW deve pressupor que o preenchimento possa existir.

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

Confira também

FreeMibTable

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

MIB_IPNET_ROW2

MIB_IPNET_TABLE2