Compartilhar via


Função GetIfTable2Ex (netioapi.h)

A função GetIfTable2Ex recupera a tabela de interface MIB-II.

Sintaxe

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIfTable2Ex(
  [in]  MIB_IF_TABLE_LEVEL Level,
  [out] PMIB_IF_TABLE2     *Table
);

Parâmetros

[in] Level

O nível de informações de interface a serem recuperadas. Esse parâmetro pode ser um dos valores do tipo de enumeração MIB_IF_TABLE_LEVEL definido no arquivo de cabeçalho Netioapi.h .

Valor Significado
MibIfTableNormal
Os valores de estatísticas e estado retornados em membros da estrutura MIB_IF_ROW2 na estrutura MIB_IF_TABLE2 apontada pelo parâmetro Table são retornados da parte superior da pilha de filtros quando esse parâmetro é especificado.
MibIfTableRaw
Os valores de estatísticas e estado retornados em membros da estrutura MIB_IF_ROW2 na estrutura MIB_IF_TABLE2 apontada pelo parâmetro Table são retornados diretamente para a interface que está sendo consultada.

[out] Table

Um ponteiro para um buffer que recebe a tabela de interfaces em uma estrutura MIB_IF_TABLE2 .

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos códigos de erro a seguir.

Código de retorno Descrição
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se um valor inválido tiver sido passado no parâmetro Level .
ERROR_NOT_ENOUGH_MEMORY
Recursos de memória insuficientes estão disponíveis para concluir a operação.
Outros
Use FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

O
A função GetIfTable2Ex enumera as interfaces lógicas e físicas em um sistema local e retorna essas informações em uma estrutura MIB_IF_TABLE2. GetIfTable2Ex é uma versão aprimorada da função GetIfTable que permite selecionar o nível de informações de interface a serem recuperadas.

Uma função GetIfTable2 semelhante também pode ser usada para recuperar interfaces. mas não permite que a especificação do nível de interfaces retorne. Chamar a função GetIfTable2Ex com o parâmetro Level definido como MibIfTableNormal recupera os mesmos resultados que chamar a função GetIfTable2 .

As interfaces são retornadas em uma estrutura MIB_IF_TABLE2 no buffer apontado pelo parâmetro Table . A estrutura MIB_IF_TABLE2 contém uma contagem de interfaces e uma matriz de estruturas MIB_IF_ROW2 para cada interface. A memória é alocada pela função GetIfTable2 para a estrutura MIB_IF_TABLE2 e as entradas MIB_IF_ROW2 nessa estrutura. Quando essas estruturas retornadas não forem mais necessárias, libere a memória chamando FreeMibTable.

Todas as interfaces, incluindo interfaces de driver intermediário NDIS e interfaces de driver de filtro NDIS, são retornadas para qualquer um dos valores possíveis para o parâmetro Level . A configuração do parâmetro Level afeta como as estatísticas e os membros de estado da estrutura MIB_IF_ROW2 na estrutura MIB_IF_TABLE2 apontada pelo parâmetro Table para a interface são retornados. Por exemplo, uma NIC (cartão de interface de rede) terá um driver de miniporta NDIS. Um driver intermediário do NDIS pode ser instalado para interface entre drivers de protocolo de nível superior e drivers de miniporto NDIS. Um LWF (driver de filtro NDIS) pode ser anexado sobre o driver intermediário do NDIS. Suponha que a NIC relata o membro MediaConnectState da estrutura MIB_IF_ROW2 como MediaConnectStateConnected , mas o driver de filtro NDIS modifica o estado e relata o estado como MediaConnectStateDisconnected. Quando as informações da interface são consultadas com o parâmetro Level definido como MibIfTableNormal, o estado na parte superior da pilha de filtros, que é MediaConnectStateDisconnected , é relatado. Quando a interface é consultada com o parâmetro Level definido como MibIfTableRaw, o estado diretamente no nível da interface, que é MediaConnectStateConnected , é retornado.

Observe que a estrutura de MIB_IF_TABLE2 retornada apontada pelo parâmetro Table pode conter preenchimento para alinhamento entre o membro NumEntries e a primeira entrada de matriz MIB_IF_ROW2 no membro Table da estrutura MIB_IF_TABLE2 . O preenchimento para alinhamento também pode estar presente entre as entradas da matriz MIB_IF_ROW2 . Qualquer acesso a uma entrada de matriz MIB_IF_ROW2 deve assumir que o preenchimento pode existir.

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]
Plataforma de Destino Windows
Cabeçalho netioapi.h (inclua Iphlpapi.h)
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

FreeMibTable

GetIfTable

GetIfTable2

Referência de função auxiliar de IP

MIB_IF_ROW2

MIB_IF_TABLE2