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 de 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 .
Retornar valor
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 inválido 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. |
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 o driver despecifique o nível de interfaces a ser retornado. 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 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 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 MIB_IF_ROW2 na estrutura MIB_IF_TABLE2 que é apontada pelo parâmetro Table para a interface são retornados. Por exemplo, uma NIC (cartão 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 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 (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 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 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
Plataforma de destino |
Universal |
Versão |
Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
parâmetro |
Netioapi.h (inclua Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |