Compartilhar via


Função GetIfTable2Ex

A função GetIfTable2Ex recupera a tabela de interface MIB-II, considerando um nível de informações de interface a serem recuperadas.

Sintaxe

NETIOAPI_API GetIfTable2Ex(
  _In_  MIB_IF_TABLE_LEVEL Level,
  _Out_ PMIB_IF_TABLE2     *Table
);

Parâmetros

  • Nível [in]
    O nível das informações de interface a serem recuperadas. Esse parâmetro pode ser um dos valores da enumeração MIB_IF_TABLE_LEVEL.

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

Valor de retorno

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

Se a função falhar, GetIfTable2Ex 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 valor ilegal tiver sido passado no parâmetro Level.

STATUS_NOT_ENOUGH_MEMORY

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

Outros

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

Observações

A função GetIfTable2Ex enumera as interfaces lógicas e físicas em um computador local e retorna essas informações em uma estrutura MIB_IF_TABLE2.

O driver pode usar uma função semelhante, GetIfTable2, para recuperar interfaces, mas GetIfTable2 não permite que o driver despecifique o nível das interfaces a serem retornadas. Uma chamada para a função GetIfTable2Ex com o parâmetro Level definido como MibIfTableNormal recupera os mesmos resultados que chamar a função GetIfTable2.

GetIfTable2Ex retorna interfaces em uma estrutura de MIB_IF_TABLE2 no buffer à qual o parâmetro Table aponta. A estrutura MIB_IF_TABLE2 contém uma contagem de interfaces e uma matriz de estruturas MIB_IF_ROW2 para cada interface. GetIfTable2 aloca mmory para a estrutura de MIB_IF_TABLE2 e as entradas MIB_IF_ROW2 nessa estrutura. Quando essas estruturas retornadas não forem mais necessárias, o driver deverá liberar a memória chamando FreeMibTable .

Todas as interfaces, incluindo interfaces de driver intermediário do 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 de MIB_IF_ROW2 na estrutura de MIB_IF_TABLE2 que é apontado pelo parâmetro de Tabela para a interface são retornados. Por exemplo, uma NIC (placa de interface de rede) tem um driver de miniporto 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 driver de filtro NDIS pode ser anexado sobre o driver intermediário do NDIS. Suponha que a NIC reporte o MediaConnectState membro 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 (MediaConnectStateDisconnected) é relatado. Quando a interface é consultada com o parâmetro Level definido como MibIfTableRaw, o estado diretamente no nível da interface (MediaConnectStateConnected) é retornado.

Observe que a estrutura de MIB_IF_TABLE2 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_IF_ROW2 no membro tabela da estrutura MIB_IF_TABLE2. O preenchimento para alinhamento também pode estar presente entre as entradas de matriz MIB_IF_ROW2. Qualquer acesso a uma entrada de matriz MIB_IF_ROW2 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

Consulte também

FreeMibTable

GetIfTable2

MIB_IF_TABLE_LEVEL

MIB_IF_TABLE2

MIB_IF_ROW2