netioapi.h) (MIB_IPFORWARD_ROW2 结构

MIB_IPFORWARD_ROW2结构存储有关 IP 路由条目的信息。

语法

typedef struct _MIB_IPFORWARD_ROW2 {
  NET_LUID          InterfaceLuid;
  NET_IFINDEX       InterfaceIndex;
  IP_ADDRESS_PREFIX DestinationPrefix;
  SOCKADDR_INET     NextHop;
  UCHAR             SitePrefixLength;
  ULONG             ValidLifetime;
  ULONG             PreferredLifetime;
  ULONG             Metric;
  NL_ROUTE_PROTOCOL Protocol;
  BOOLEAN           Loopback;
  BOOLEAN           AutoconfigureAddress;
  BOOLEAN           Publish;
  BOOLEAN           Immortal;
  ULONG             Age;
  NL_ROUTE_ORIGIN   Origin;
} MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2;

成员

InterfaceLuid

类型: NET_LUID

与此 IP 路由条目关联的网络接口的本地唯一标识符 (LUID) 。

InterfaceIndex

类型: NET_IFINDEX

与此 IP 路由条目关联的网络接口的本地索引值。 当禁用然后启用网络适配器时,或者在其他情况下,此索引值可能会更改,不应被视为永久性。

DestinationPrefix

类型: IP_ADDRESS_PREFIX

此路由的目标 IP 地址的 IP 地址前缀。

NextHop

类型: SOCKADDR_INET

对于远程路由,为路由中下一个系统或网关的 IP 地址。 如果路由到本地环回地址或本地链接上的 IP 地址,则未指定下一跃点 (所有零) 。 对于本地环回路由,对于 IPv4 路由条目,此成员应为 0.0.0.0 的 IPv4 地址,对于 IPv6 路由条目,应为 0::0 的 IPv6 地址。

SitePrefixLength

类型: UCHAR

此路由的 IP 地址的站点前缀或网络部分的长度(以位为单位)。 对于 IPv4 路由条目,任何大于 32 的值都是非法值。 对于 IPv6 路由条目,任何大于 128 的值都是非法值。 值 255 通常用于表示非法值。

ValidLifetime

类型: ULONG

IP 路由条目有效的最长时间(以秒为单位)。 0xffffffff 值被视为无限。

PreferredLifetime

类型: ULONG

IP 路由条目有效的首选时间(以秒为单位)。 0xffffffff 值被视为无限。

Metric

类型: ULONG

此 IP 路由条目的路由指标偏移值。 请注意,用于计算路由首选项的实际路由指标是MIB_IPINTERFACE_ROW结构的 Metric 成员中指定的接口指标的总和,以及此成员中指定的路由指标偏移量。 此指标的语义由 Protocol 成员中指定的路由 协议 确定。 如果未使用此指标,其值应设置为 -1。 RFC 4292 中记录了此值。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc4292.txt

Protocol

类型: NL_ROUTE_PROTOCOL

添加此 IP 路由的方式的路由机制。 此成员可以是 Nldef.h 头文件中定义的NL_ROUTE_PROTOCOL枚举类型的值之一。 RFC 4292 中介绍了成员。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc4292.txt

请注意,Ipmib.h 头文件自动包含 Nldef.h 标头,该头文件由 Iprtrmib.h 标头自动包含。 Iphlpapi.h 标头自动包含 Iprtrmib.h 头文件。 永远不应直接使用 Iprtrmib.hIpmib.hNldef.h 头文件。

以下列表显示了此成员的可能值。

含义
MIB_IPPROTO_OTHER
1
未指定路由机制。
MIB_IPPROTO_LOCAL
2
本地接口。
MIB_IPPROTO_NETMGMT
3
静态路由。 此值用于标识通过网络管理(例如动态主机配置协议 (DCHP) 、简单网络管理协议 (SNMP) )或通过调用 CreateIpForwardEntry2DeleteIpForwardEntry2SetIpForwardEntry2 函数来设置的 IP 路由的路由信息。
MIB_IPPROTO_ICMP
4
ICMP 重定向的结果。
MIB_IPPROTO_EGP
5
外部网关协议 (EGP) 动态路由协议。
MIB_IPPROTO_GGP
6
网关到网关协议 (GGP) 动态路由协议。
MIB_IPPROTO_HELLO
7
Hellospeak 协议,动态路由协议。 这是不再使用的历史条目,是原始 ARPANET 路由器使用的早期路由协议,该协议运行称为模糊球路由协议(有时称为 Hellospeak)的特殊软件,如 RFC 891 和 RFC 1305 中所述。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc891.txthttp://www.ietf.org/rfc/rfc1305.txt
MIB_IPPROTO_RIP
8
Berkeley 路由信息协议 (RIP) 或 RIP-II,一种动态路由协议。
MIB_IPPROTO_IS_IS
9
中间系统到中间系统 (IS-IS) 协议(动态路由协议)。 IS-IS 协议开发用于开放系统互连 (OSI) 协议套件。
MIB_IPPROTO_ES_IS
10
端系统到中间系统 (ES-IS) 协议,动态路由协议。 ES-IS 协议开发用于开放系统互连 (OSI) 协议套件。
MIB_IPPROTO_CISCO
11
Cisco 内部网关路由协议 (IGRP) 动态路由协议。
MIB_IPPROTO_BBN
12
Bolt、Beranek 和 Newman (BBN) 内部网关协议 (IGP) ,该协议使用最短路径 First (SPF) 算法。 这是早期的动态路由协议。
MIB_IPPROTO_OSPF
13
Open Shortest Path First (OSPF) 协议(一种动态路由协议)。
MIB_IPPROTO_BGP
14
边界网关协议 (BGP) 动态路由协议。
MIB_IPPROTO_NT_AUTOSTATIC
10002
最初由路由协议添加的 Windows 特定条目,但现在是静态的。
MIB_IPPROTO_NT_STATIC
10006
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目。
MIB_IPPROTO_NT_STATIC_NON_DOD
10007
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目,但这些路由不会导致按需拨号 (DOD) 。

Loopback

类型: BOOLEAN

一个 值,该值指定路由是否为环回路由, (网关位于本地主机上) 。

AutoconfigureAddress

类型: BOOLEAN

一个 值,该值指定是否自动配置 IP 地址。

Publish

类型: BOOLEAN

一个 值,该值指定是否发布路由。

Immortal

类型: BOOLEAN

一个 值,该值指定路由是否不朽。

Age

类型: ULONG

在网络路由表中添加或修改路由后的秒数。

Origin

类型: NL_ROUTE_ORIGIN

路由的原点。 此成员可以是 Nldef.h 头文件中定义的NL_ROUTE_ORIGIN枚举类型的值之一。

含义
NlroManual
0
手动配置的结果。
NlroWellKnown
1
已知路由。
NlroDHCP
2
DHCP 配置的结果。
NlroRouterAdvertisement
3
路由器播发的结果。
Nlro6to4
4
6to4 隧道的结果。

注解

MIB_IPFORWARD_ROW2结构在 Windows Vista 及更高版本上定义。

GetIpForwardTable2 函数枚举本地系统上的 IP 路由条目,并在MIB_IPFORWARD_TABLE2结构中以MIB_IPFORWARD_ROW2条目数组的形式返回此信息。

GetIpForwardEntry2 函数检索单个 IP 路由条目,并在MIB_IPFORWARD_ROW2结构中返回此信息。

MIB_IPFORWARD_ROW2 结构的 DestinationPrefix 成员中,IP_ADDRESS_PREFIX的 PrefixPrefixLength 成员设置为零的条目被视为默认路由。 如果安装了多个网络适配器,MIB_IPFORWARD_TABLE2可能包含多个MIB_IPFORWARD_ROW2条目,并且IP_ADDRESS_PREFIX的 PrefixLength 成员在 DestinationPrefix 成员中设置为零

MIB_IPFORWARD_ROW2条目的 Metric 成员是分配给特定网络接口的 IP 路由的值,用于标识与使用该路由关联的成本。 例如,可以根据链接速度、跃点计数或时间延迟来评估指标。 自动指标是 Windows XP 及更高版本上的一项功能,可自动配置基于链路速度的本地路由的指标。 在 Windows XP 及更高版本上, (MIB_IPINTERFACE_ROW 结构的UseAutomaticMetric 成员设置为 TRUE) ,则默认启用自动指标功能。 也可以手动将其配置为将特定指标分配给 IP 路由。

在 MIB_IPFORWARD_ROW2 结构的 Metric 成员中指定的路由指标仅表示路由指标偏移量。 完整指标是添加到关联接口的MIB_IPINTERFACE_ROW结构的指标成员中指定的接口指标的路由指标偏移量的组合。 应用程序可以通过调用 GetIpInterfaceEntry 函数来检索接口指标。

请注意, Netioapi.h 头文件会自动包含在 Iphlpapi.h 头文件中。 永远不应直接使用 Netioapi.h 头文件。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 netioapi.h (包括 Iphlpapi.h)

另请参阅

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

IP_ADDRESS_PREFIX

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

SOCKADDR_INET

SetIpForwardEntry2