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 地址的 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.h、 Ipmib.h 和 Nldef.h 头文件。
以下列表显示了此成员的可能值。
值 | 含义 |
---|---|
|
未指定路由机制。 |
|
本地接口。 |
|
静态路由。 此值用于标识通过网络管理(例如动态主机配置协议 (DCHP) 、简单网络管理协议 (SNMP) )或通过调用 CreateIpForwardEntry2、 DeleteIpForwardEntry2 或 SetIpForwardEntry2 函数来设置的 IP 路由的路由信息。 |
|
ICMP 重定向的结果。 |
|
外部网关协议 (EGP) 动态路由协议。 |
|
网关到网关协议 (GGP) 动态路由协议。 |
|
Hellospeak 协议,动态路由协议。 这是不再使用的历史条目,是原始 ARPANET 路由器使用的早期路由协议,该协议运行称为模糊球路由协议(有时称为 Hellospeak)的特殊软件,如 RFC 891 和 RFC 1305 中所述。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc891.txt 和 http://www.ietf.org/rfc/rfc1305.txt。 |
|
Berkeley 路由信息协议 (RIP) 或 RIP-II,一种动态路由协议。 |
|
中间系统到中间系统 (IS-IS) 协议(动态路由协议)。 IS-IS 协议开发用于开放系统互连 (OSI) 协议套件。 |
|
端系统到中间系统 (ES-IS) 协议,动态路由协议。 ES-IS 协议开发用于开放系统互连 (OSI) 协议套件。 |
|
Cisco 内部网关路由协议 (IGRP) 动态路由协议。 |
|
Bolt、Beranek 和 Newman (BBN) 内部网关协议 (IGP) ,该协议使用最短路径 First (SPF) 算法。 这是早期的动态路由协议。 |
|
Open Shortest Path First (OSPF) 协议(一种动态路由协议)。 |
|
边界网关协议 (BGP) 动态路由协议。 |
|
最初由路由协议添加的 Windows 特定条目,但现在是静态的。 |
|
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目。 |
|
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目,但这些路由不会导致按需拨号 (DOD) 。 |
Loopback
类型: BOOLEAN
一个 值,该值指定路由是否为环回路由, (网关位于本地主机上) 。
AutoconfigureAddress
类型: BOOLEAN
一个 值,该值指定是否自动配置 IP 地址。
Publish
类型: BOOLEAN
一个 值,该值指定是否发布路由。
Immortal
类型: BOOLEAN
一个 值,该值指定路由是否不朽。
Age
类型: ULONG
在网络路由表中添加或修改路由后的秒数。
Origin
类型: NL_ROUTE_ORIGIN
路由的原点。 此成员可以是 Nldef.h 头文件中定义的NL_ROUTE_ORIGIN枚举类型的值之一。
值 | 含义 |
---|---|
|
手动配置的结果。 |
|
已知路由。 |
|
DHCP 配置的结果。 |
|
路由器播发的结果。 |
|
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的 Prefix 和 PrefixLength 成员设置为零的条目被视为默认路由。 如果安装了多个网络适配器,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) |