Share via


Estrutura IFEntry (tcpioctl.h)

[Essa estrutura pode estar alterada ou indisponível em versões futuras do Windows.]

Descreve uma interface TCP/IP de acordo com o Protocolo de Gerenciamento de Rede Simples, versão 2, (SNMPv2) padrão para a Base de Informações de Gerenciamento para gerenciamento de rede de redes TCP/IP (MIB-II), conforme especificado na Solicitação da Força-Tarefa de Engenharia da Internet (IETF) para Comentários (RFC) 1213 nas páginas 16 a 23.

Sintaxe

typedef struct IFEntry {
  ulong if_index;
  ulong if_type;
  ulong if_mtu;
  ulong if_speed;
  ulong if_physaddrlen;
  uchar if_physaddr[MAX_PHYSADDR_SIZE];
  ulong if_adminstatus;
  ulong if_operstatus;
  ulong if_lastchange;
  ulong if_inoctets;
  ulong if_inucastpkts;
  ulong if_innucastpkts;
  ulong if_indiscards;
  ulong if_inerrors;
  ulong if_inunknownprotos;
  ulong if_outoctets;
  ulong if_outucastpkts;
  ulong if_outnucastpkts;
  ulong if_outdiscards;
  ulong if_outerrors;
  ulong if_outqlen;
  ulong if_descrlen;
  uchar if_descr[1];
} IFEntry;

Membros

if_index

Um valor entre 1 e o número de interfaces de rede presentes nesse sistema, independentemente do estado atual, que identifica exclusivamente essa interface e persiste na reinicialização do sistema de gerenciamento de rede.

if_type

O tipo de interface de acordo com os protocolos físicos ou de link imediatamente abaixo da camada de rede na pilha de protocolos. A tabela a seguir lista os valores possíveis desse membro if_type enumerado nas páginas 18 e 19 do RFC 1213.

Valor Significado
1
outro (ou seja, nenhum dos seguintes)
2
regular1822
3
hdh1822
4
ddn-x25
5
rfc877-x25
6
Ethernet-csmacd
7
iso88023-csmacd
8
iso88024-tokenBus
9
iso88025-tokenRing
10
iso88026-man
11
starLan
12
proteon-10Mbit
13
proteon-80Mbit
14
hipercanal
15
Fddi
16
lapb
17
Sdlc
18
ds1 (T-1)
19
e1 (equiv europeu de T-1)
20
basicISDN
21
primaryISDN (serial proprietário)
22
propPointToPointSerial
23
Ppp
24
softwareLoopback
25
eon (CLNP por IP [11])
26
Ethernet-3Mbit
27
nsip (XNS por IP)
28
slip (SLIP genérico)
29
ultra (tecnologias ULTRA)
30
ds3 (T-3)
31
sip (SMDS)
32
frame-relay(32)
 

Inclua o arquivo de cabeçalho Ipifcons.h do SDK da Microsoft para constantes de sinalizador que dão suporte a esses e tipos de interface IP adicionais.

Ao examinar o valor do membro if_type , talvez você também queira definir e testar uma constante adicional que identifique uma interface de "loopback": #define IF_TYPE_LOOPBACK 0

if_mtu

O tamanho, em bytes, do maior datagrama que pode ser enviado ou recebido na interface. Para interfaces usadas para transmitir datagramas de rede, esse é o tamanho do maior datagrama de rede que pode ser enviado na interface.

if_speed

Uma estimativa da largura de banda atual da interface, em bits por segundo. Para interfaces que não variam em largura de banda ou para as quais nenhuma estimativa precisa pode ser feita, esse membro contém a largura de banda nominal.

if_physaddrlen

O comprimento, em bytes, do endereço contido no membro if_physaddr . Para interfaces como portas serial que não têm um endereço desse tipo, o membro if_physaddrlen é zero.

if_physaddr[MAX_PHYSADDR_SIZE]

O endereço da interface na camada de protocolo imediatamente abaixo da camada de rede na pilha de protocolo. Para interfaces como portas serial que não têm um endereço desse tipo, o membro if_physaddr contém uma cadeia de caracteres vazia.

if_adminstatus

O estado desejado da interface; um dos valores a seguir especificados na página 20 do RFC 1213.

Valor Significado
1
Para cima; pronto para passar pacotes.
2
Inativo.
3
Em um estado de teste, de modo que nenhum pacote operacional possa ser passado.

if_operstatus

O estado operacional atual real da interface; um dos valores a seguir especificados na página 20 do RFC 1213.

Valor Significado
1
Para cima; pronto para passar pacotes.
2
Inativo.
3
Em um estado de teste, de modo que nenhum pacote operacional possa ser passado.

if_lastchange

O tempo, em centésimos de segundo, desde que a parte de gerenciamento de rede do sistema foi reinicializada pela última vez, na qual essa interface entrou em seu estado operacional atual real. Se o estado atual tiver sido inserido antes da última reinicialização do subsistema de gerenciamento de rede local, esse membro será definido como zero.

if_inoctets

O número total de bytes recebidos nessa interface, incluindo caracteres de enquadramento.

if_inucastpkts

O número de pacotes unicast de sub-rede entregues a um protocolo de camada superior.

if_innucastpkts

O número de pacotes não unicast (transmissão de sub-rede ou multicast de sub-rede) entregues a um protocolo de camada superior.

if_indiscards

O número de pacotes de entrada que foram descartados para liberar recursos de memória ou por outro motivo semelhante não relacionado a nenhum erro que impeça que eles sejam entregues a um protocolo de camada superior.

if_inerrors

O número de pacotes de entrada que contêm erros que os impedem de serem entregues a um protocolo de camada superior.

if_inunknownprotos

O número de pacotes de entrada que foram descartados devido a um protocolo desconhecido ou sem suporte.

if_outoctets

O número total de bytes transmitidos para fora da interface, incluindo caracteres de enquadramento.

if_outucastpkts

O número total de pacotes que os protocolos de nível superior solicitaram ser transmitidos para um endereço unicast de sub-rede, incluindo aqueles que foram descartados ou não enviados.

if_outnucastpkts

O número total de pacotes que os protocolos de nível superior solicitaram ser transmitidos para um endereço não unicast (transmissão de sub-rede ou multicast de sub-rede), incluindo aqueles que foram descartados ou não enviados.

if_outdiscards

O número de pacotes de saída que foram descartados para liberar recursos de memória ou por outros motivos semelhantes não relacionados a nenhum erro que impeça sua transmissão.

if_outerrors

O número de pacotes de saída que não puderam ser transmitidos devido a erros.

if_outqlen

O número atual de pacotes na fila de pacotes de saída.

if_descrlen

O tamanho, em bytes, sem contar nenhum caractere nulo de terminação, do texto de descrição da interface contido no membro if_descr .

if_descr[1]

Uma cadeia de caracteres de texto que contém informações sobre essa interface, incluindo o nome do fabricante, o nome do produto e a versão do hardware. Se a cadeia de caracteres não estiver incluída, o tamanho do buffer será de 1 byte.

Comentários

Devido ao seu membro if_descr de comprimento variável, a estrutura IFEntry não tem um tamanho fixo. Para fins de alocação de memória para conter uma instância real da estrutura, um tamanho de buffer razoavelmente seguro pode ser calculado da seguinte maneira:

maxIFEntryLen = sizeof(IFEntry) + MAX_ADAPTER_DESCRIPTION_LENGTH + 1;

Requisitos

Requisito Valor
Cabeçalho tcpioctl.h

Confira também

IOCTL_TCP_QUERY_INFORMATION_EX

Referência base de informações de gerenciamento