Поделиться через


Структура IFEntry (tcpioctl.h)

[Эта структура может быть изменена или недоступна в будущих версиях Windows.]

Описывает интерфейс TCP/IP в соответствии со стандартом SNMPv2 для базы сведений об управлении сетями для управления сетями (MIB-II), как указано в запросе комментариев IETF ( RFC) 1213 на страницах с 16 по 23.

Синтаксис

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;

Члены

if_index

Значение от 1 до числа сетевых интерфейсов, присутствующих в этой системе, независимо от их текущего состояния, которое однозначно идентифицирует этот интерфейс и сохраняется при повторной инициализации системы управления сетью.

if_type

Тип интерфейса в соответствии с физическими протоколами или протоколами связи непосредственно под уровнем сети в стеке протоколов. В следующей таблице перечислены возможные значения этого элемента if_type , перечисленные на страницах 18 и 19 rfc 1213.

Значение Значение
1
other (т. е. ни одно из следующих)
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
hyperchannel
15
Fddi
16
lapb
17
Sdlc
18
ds1 (T-1)
19
e1 (европейский эквивалент T-1)
20
basicISDN
21
primaryISDN (собственный последовательный)
22
propPointToPointSerial
23
Ppp
24
softwareLoopback
25
eon (CLNP по IP-адресу [11])
26
Ethernet-3Mbit
27
nsip (XNS по IP-адресу)
28
slip (универсальный SLIP)
29
Ultra (технологии ULTRA)
30
ds3 (T-3)
31
sip (SMDS)
32
frame-relay(32)
 

Включите файл заголовка Ipifcons.h из пакета Microsoft SDK для констант флагов, поддерживающих эти и дополнительные типы интерфейсов IP.

При проверке значения элемента if_type также может потребоваться определить и проверить наличие дополнительной константы, определяющей интерфейс замыкания на себя: #define IF_TYPE_LOOPBACK 0

if_mtu

Размер (в байтах) самой большой датаграммы, которую можно отправить или получить в интерфейсе. Для интерфейсов, используемых для передачи сетевых датаграмм, это размер самой большой сетевой датаграммы, которая может быть отправлена на интерфейс.

if_speed

Оценка текущей пропускной способности интерфейса в битах в секунду. Для интерфейсов, которые не различаются по пропускной способности или для которых не может быть сделана точная оценка, этот элемент содержит номинальную пропускную способность.

if_physaddrlen

Длина (в байтах) адреса, содержащегося в элементе if_physaddr . Для интерфейсов, таких как последовательные порты, у которых нет такого адреса, элемент if_physaddrlen равен нулю.

if_physaddr[MAX_PHYSADDR_SIZE]

Адрес интерфейса на уровне протокола непосредственно под уровнем сети в стеке протоколов. Для таких интерфейсов, как последовательные порты, у которых нет такого адреса, элемент if_physaddr содержит пустую строку.

if_adminstatus

Требуемое состояние интерфейса; одно из следующих значений, указанных на странице 20 RFC 1213.

Значение Значение
1
Вверх; готовы к передаче пакетов.
2
не работает.
3
В тестовом состоянии, так что операционные пакеты не могут быть переданы.

if_operstatus

Фактическое текущее рабочее состояние интерфейса; одно из следующих значений, указанных на странице 20 RFC 1213.

Значение Значение
1
Вверх; готовы к передаче пакетов.
2
не работает.
3
В тестовом состоянии невозможно передать операционные пакеты.

if_lastchange

Время в сотых долях секунды с момента последней инициализации части системы управления сетью, когда этот интерфейс вступил в свое фактическое текущее рабочее состояние. Если текущее состояние было введено до последней повторной инициализации подсистемы управления локальной сетью, этому элементу присваивается значение 0.

if_inoctets

Общее количество байтов, полученных в этом интерфейсе, включая символы обрамления.

if_inucastpkts

Количество одноадресных пакетов подсети, доставленных в протокол более высокого уровня.

if_innucastpkts

Количество пакетов, не относящихся к одноадресной рассылке (широковещательной или многоадресной подсети), доставленных в протокол более высокого уровня.

if_indiscards

Количество входящих пакетов, которые были удалены для освобождения ресурсов памяти или по другой аналогичной причине, не связанной с какой-либо ошибкой, которая может препятствовать их доставке в протокол более высокого уровня.

if_inerrors

Количество входящих пакетов, содержащих ошибки, которые препятствуют их доставке в протокол более высокого уровня.

if_inunknownprotos

Количество входящих пакетов, которые были удалены из-за неизвестного или неподдерживаемого протокола.

if_outoctets

Общее количество байтов, передаваемых из интерфейса, включая символы кадрирования.

if_outucastpkts

Общее количество пакетов, запрошенных протоколами более высокого уровня, передается на адрес одноадресной рассылки подсети, включая пакеты, которые были отклонены или не отправлены.

if_outnucastpkts

Общее количество пакетов, которые запрашивают протоколы более высокого уровня, передаются на адрес, не относящийся к одноадресной рассылке (широковещательной или многоадресной подсети), включая пакеты, которые были отменены или не отправлены.

if_outdiscards

Количество исходящих пакетов, которые были удалены для освобождения ресурсов памяти или по другим аналогичным причинам, не связанным с какой-либо ошибкой, которая может препятствовать их передаче.

if_outerrors

Количество исходящих пакетов, которые не удалось передать из-за ошибок.

if_outqlen

Текущее количество пакетов в очереди выходных пакетов.

if_descrlen

Размер текста описания интерфейса, содержащегося в элементе if_descr , в байтах без учета завершающего пустого символа.

if_descr[1]

Текстовая строка, содержащая сведения об этом интерфейсе, включая название производителя, название продукта и версию оборудования. Если строка не включена, размер буфера составляет 1 байт.

Комментарии

Из-за if_descr элемента переменной длины структура IFEntry не имеет фиксированного размера. Для выделения памяти для хранения фактического экземпляра структуры достаточно безопасный размер буфера можно вычислить следующим образом:

maxIFEntryLen = sizeof(IFEntry) + MAX_ADAPTER_DESCRIPTION_LENGTH + 1;

Требования

Требование Значение
Заголовок tcpioctl.h

См. также раздел

IOCTL_TCP_QUERY_INFORMATION_EX

Справочник по базе сведений об управлении