структура MIB_IPFORWARDROW (ipmib.h)
Структура MIB_IPFORWARDROW содержит сведения, описывающие сетевой маршрут IPv4.
Синтаксис
typedef struct _MIB_IPFORWARDROW {
DWORD dwForwardDest;
DWORD dwForwardMask;
DWORD dwForwardPolicy;
DWORD dwForwardNextHop;
IF_INDEX dwForwardIfIndex;
union {
DWORD dwForwardType;
MIB_IPFORWARD_TYPE ForwardType;
};
union {
DWORD dwForwardProto;
MIB_IPFORWARD_PROTO ForwardProto;
};
DWORD dwForwardAge;
DWORD dwForwardNextHopAS;
DWORD dwForwardMetric1;
DWORD dwForwardMetric2;
DWORD dwForwardMetric3;
DWORD dwForwardMetric4;
DWORD dwForwardMetric5;
} MIB_IPFORWARDROW, *PMIB_IPFORWARDROW;
Члены
dwForwardDest
Тип: DWORD
Целевой IPv4-адрес маршрута. Запись с IPv4-адресом 0.0.0.0 считается маршрутом по умолчанию. Для этого элемента нельзя задать адрес IPv4 многоадресной рассылки (класс D).
dwForwardMask
Тип: DWORD
Маска подсети IPv4, используемая с адресом IPv4 назначения перед сравнением со значением в элементе dwForwardDest .
Значение dwForwardMask должно быть применено к целевому IPv4-адресу (логическому и оперативному) перед сравнением со значением в элементе dwForwardDest .
dwForwardPolicy
Тип: DWORD
Набор условий, которые будут вызывать выбор маршрута с несколькими путями (набор следующих прыжков для заданного назначения). Этот элемент обычно имеет формат IP TOS. Эта кодировка этого элемента описана в документе RFC 1354. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc1354.txt.
dwForwardNextHop
Тип: DWORD
Для удаленных маршрутов — IPv4-адрес следующей системы. В противном случае этот элемент должен быть IPv4-адресом 0.0.0.0.
dwForwardIfIndex
Тип: DWORD
Индекс локального интерфейса, через который должен быть достигнут следующий прыжок этого маршрута.
dwForwardType
Тип: DWORD
Тип маршрута, как описано в RFC 1354. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc1354.txt.
Этот член может быть одним из значений, определенных в файле заголовка Iprtmib.h .
В Windows Vista и более поздних версиях файлы заголовков были реорганизованы, и этот член может быть одним из значений из типа перечисления MIB_IPFORWARD_TYPE , определенного в файле заголовка Ipmib.h . Обратите внимание, что заголовок Ipmib.h автоматически включается в файл заголовка Iprtrmib.h , который автоматически включается в заголовок Iphlpapi.h . Файлы заголовков Iprtrmib.h и Ipmib.h никогда не следует использовать напрямую.
В следующем списке показаны возможные значения для этого элемента.
ForwardType
dwForwardProto
Тип: DWORD
Протокол или механизм маршрутизации, создающий маршрут, как описано в RFC 1354. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc1354.txt. Список возможных идентификаторов протоколов , используемых протоколами маршрутизации, см. в разделе Идентификаторы протоколов.
Этот член может быть одним из значений, определенных в файле заголовка Iprtmib.h . Значения этого элемента могут быть одним из MIB_IPPROTO_xxx значений, определенных в файле заголовка Iprtmib.h , или одним из PROTO_IP_xxx значений, определенных в файле заголовка routprot.h , так как эти значения совпадают.
В Windows Vista и более поздних версиях файлы заголовков были реорганизованы, и этот элемент может быть одним из значений, определенных в файле заголовка Nldef.h . Обратите внимание, что заголовок Nldef.h автоматически включается в файл заголовка Ipmib.h , который автоматически включается в заголовок Iprtrmib.h . Заголовок Iphlpapi.h автоматически включает файл заголовка Iprtrmib.h . Файлы заголовков Iprtrmib.h, Ipmib.h и Nldef.h никогда не должны использоваться напрямую.
В следующем списке показаны возможные значения для этого элемента.
Значение | Значение |
---|---|
|
Некоторые другие протоколы, не указанные в RFC 1354. |
|
Локальный интерфейс. |
|
Статический маршрут. Это значение используется для определения сведений о маршруте для IP-маршрутизации, заданной с помощью управления сетью, например протокола DCHP, SNMP или вызовов функций CreateIpForwardEntry, DeleteIpForwardEntry или SetIpForwardEntry . |
|
Результат перенаправления ICMP. |
|
Протокол внешнего шлюза (EGP), протокол динамической маршрутизации. |
|
Протокол GGP, протокол динамической маршрутизации. |
|
Протокол Hellospeak, протокол динамической маршрутизации. Это историческая запись больше не используется и является ранним протоколом маршрутизации, используемым оригинальными маршрутизаторами ARPANET, на которых выполнялось специальное программное обеспечение, называемое протоколом маршрутизации Fuzzball, иногда называемым Hellospeak, как описано в RFC 891 и RFC 1305. Дополнительные сведения см. в разделах http://www.ietf.org/rfc/rfc891.txt и http://www.ietf.org/rfc/rfc1305.txt. |
|
Протокол RIP (RIP) или RIP-II, протокол динамической маршрутизации. |
|
Протокол промежуточной системы к промежуточной системе (IS-IS), протокол динамической маршрутизации. Протокол IS-IS был разработан для использования в наборе протоколов OSI. |
|
Протокол ES-IS, протокол динамической маршрутизации. Протокол ES-IS был разработан для использования в наборе протоколов OPEN Systems Interconnection (OSI). |
|
Протокол маршрутизации внутреннего шлюза Cisco (IGRP), протокол динамической маршрутизации. |
|
Протокол внутреннего шлюза (IGP) Bolt, Beranek и Newman (BBN), который использовал алгоритм кратчайшего пути (SPF). Это был ранний протокол динамической маршрутизации. |
|
Протокол OPEN SHORTEST PATH First (OSPF), протокол динамической маршрутизации. |
|
Протокол BGP, протокол динамической маршрутизации. |
|
Запись windows, добавленная изначально протоколом маршрутизации, но теперь статическая. |
|
Запись windows, добавленная в виде статического маршрута из пользовательского интерфейса маршрутизации или команды маршрутизации. |
|
Определенная запись Windows, добавленная в качестве статического маршрута из пользовательского интерфейса маршрутизации или команды маршрутизации, за исключением этих маршрутов, не приводит к вызову dial On Demand (DOD). |
ForwardProto
dwForwardAge
Тип: DWORD
Количество секунд с момента добавления или изменения маршрута в таблице сетевой маршрутизации.
dwForwardNextHopAS
Тип: DWORD
Номер автономной системы следующего прыжка. Если этот элемент неизвестен или не относится к протоколу или механизму маршрутизации, указанному в dwForwardProto, это значение должно быть равно нулю. Это значение задокументировано в RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
dwForwardMetric1
Тип: DWORD
Значение основной метрики маршрутизации для этого маршрута. Семантика этой метрики определяется протоколом маршрутизации, указанным в элементе dwForwardProto . Если эта метрика не используется, ее значение должно быть равно -1. Это значение описано в документе RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
dwForwardMetric2
Тип: DWORD
Значение метрики альтернативной маршрутизации для этого маршрута. Семантика этой метрики определяется протоколом маршрутизации, указанным в элементе dwForwardProto . Если эта метрика не используется, ее значение должно быть равно -1. Это значение задокументировано в RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
dwForwardMetric3
Тип: DWORD
Значение метрики альтернативной маршрутизации для этого маршрута. Семантика этой метрики определяется протоколом маршрутизации, указанным в элементе dwForwardProto . Если эта метрика не используется, ее значение должно быть равно -1. Это значение задокументировано в RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
dwForwardMetric4
Тип: DWORD
Значение метрики альтернативной маршрутизации для этого маршрута. Семантика этой метрики определяется протоколом маршрутизации, указанным в элементе dwForwardProto . Если эта метрика не используется, ее значение должно быть равно -1. Это значение задокументировано в RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
dwForwardMetric5
Тип: DWORD
Значение метрики альтернативной маршрутизации для этого маршрута. Семантика этой метрики определяется протоколом маршрутизации, указанным в элементе dwForwardProto . Если эта метрика не используется, ее значение должно быть равно -1. Это значение задокументировано в RFC 1354. Дополнительные сведения см. в разделе http://www.ietf.org/rfc/rfc1354.txt.
Комментарии
Функция GetIpForwardTable перечисляет записи маршрута IPv4 в локальной системе и возвращает эти сведения в MIB_IPFORWARDTABLE структуре, содержащей массив записей MIB_IPFORWARDROW структуры.
Элементы dwForwardDest, dwForwardMask и dwForwardNextHop структуры MIB_IPFORWARDROW представляют IPv4-адреса в порядке сетевых байтов.
Элемент dwForwardProto структуры MIB_IPFORWARDROW указывает протокол или механизм маршрутизации, создающий маршрут. Идентификаторы протокола маршрутизации используются для определения сведений о маршрутах для указанного протокола маршрутизации. Например, MIB_IPPROTO_NETMGMT используется для определения сведений о маршруте для IP-маршрутизации, заданной с помощью управления сетью, например протокола DCHP, протокола SNMP или путем вызовов функций CreateIpForwardEntry, DeleteIpForwardEntry или SetIpForwardEntry . Список возможных протоколов и механизмов маршрутизации см. в разделе Идентификаторы протоколов.
IPv4-адрес 0.0.0.0 в элементе dwForwardDestструктуры MIB_IPFORWARDROW считается маршрутом по умолчанию. Если установлено несколько сетевых адаптеров, MIB_IPFORWARDTABLE может содержать несколько записей MIB_IPFORWARDROW с элементом dwForwardDest, равным 0.0.0.0.
Если для dwForwardAge задано значение INFINITE, маршрут не будет удален в зависимости от времени ожидания.
альфа. Любое другое значение dwForwardAge указывает количество секунд с момента добавления или изменения маршрута в таблице сетевой маршрутизации.
В Windows Server 2003 или Windows 2000 Server, когда запущена служба маршрутизации и удаленного доступа (RRAS), возвращаемые записи MIB_IPFORWARDROW имеют равные нулю элементы dwForwardType и dwForwardAge .
В Windows Vista и Windows Server 2008 метрика маршрута, указанная в элементе dwForwardMetric1 структуры MIB_IPFORWARDROW , представляет собой сочетание метрики маршрута, добавленной в метрику интерфейса, указанную в элементе Метрикиструктуры MIB_IPINTERFACE_ROW связанного интерфейса. Таким образом, элемент dwForwardMetric1 структуры MIB_IPFORWARDROW должен быть равен или больше элемента Metric связанной MIB_IPINTERFACE_ROW структуры. Если приложение хочет задать для метрики маршрута значение 0, то элемент dwForwardMetric1 структуры MIB_IPFORWARDROW должен быть равен значению метрики интерфейса, указанной в элементе Метрика связанной структуры MIB_IPINTERFACE_ROW . Приложение может получить метрику интерфейса, вызвав функцию GetIpInterfaceEntry .
Некоторые элементы структуры MIB_IPFORWARDROW в настоящее время не используются маршрутизацией IPv4. К этим элементам относятся dwForwardPolicy, dwForwardNextHopAS, dwForwardMetric2, dwForwardMetric3, dwForwardMetric4 и dwForwardMetric5.
В пакете SDK microsoft Windows, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась. Эта структура определена в файле заголовка Ipmib.h , а не в файле заголовка Iprtrmib.h . Обратите внимание, что файл заголовка Ipmib.h автоматически включается в iprtrmib.h, который автоматически включается в файл заголовка Iphlpapi.h . Файлы заголовков Ipmib.h и Iprtrmib.h никогда не следует использовать напрямую.
Примеры
Чтобы просмотреть пример, который извлекает MIB_IPFORWARDTABLE структуру, а затем выводит записи MIB_IPFORWARDROW структуры в этой таблице, см. функцию GetIpForwardTable .
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | ipmib.h (включая Iphlpapi.h) |