Partilhar via


Função GetIfTable2Ex

A função GetIfTable2Ex recupera a tabela de interface MIB-II, dado um nível de informações de interface a ser recuperado.

Sintaxe

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

Parâmetros

  • Nível [in]
    O nível de informações da interface a serem recuperadas. Este 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 de 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. Este erro é retornado se um valor ilegal foi 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.

Comentários

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.

Seu driver pode usar uma função semelhante, GetIfTable2, para recuperar interfaces, mas GetIfTable2 não permite que seu driver especifique o nível de interfaces a retornar. Uma chamada para o 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 MIB_IF_TABLE2 no buffer para o 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 MIB_IF_TABLE2 e as entradas MIB_IF_ROW2 nessa estrutura. Quando essas estruturas retornadas não são mais necessárias, seu driver deve liberar 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 para o 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 placa de interface de rede (NIC) tem um driver de miniporta NDIS. Um driver intermediário NDIS pode ser instalado para fazer interface entre drivers de protocolo de nível superior e drivers de miniporta NDIS. Um driver de filtro NDIS pode ser anexado sobre o driver intermediário NDIS. Suponha que a NIC relata 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 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 no nível da interface diretamente (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 na Table membro 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 assumir que o preenchimento pode existir.

Requerimentos

Plataforma de destino

Universal

Versão

Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.

Cabeçalho

Netioapi.h (inclui Netioapi.h)

Biblioteca

Netio.lib

IRQL

< DISPATCH_LEVEL

Ver também

FreeMibTable

GetIfTable2

MIB_IF_TABLE_LEVEL

MIB_IF_TABLE2

MIB_IF_ROW2