ipmib.h) (MIB_IPFORWARDROW 结构
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 的条目被视为默认路由。 此成员不能设置为多播 (D 类) IPv4 地址。
dwForwardMask
类型:DWORD
与 dwForwardDest 成员中的值进行比较之前,用于目标 IPv4 地址的 IPv4 子网掩码。
在与 dwForwardDest 成员中的值进行比较之前,应将 dwForwardMask 值应用于目标 IPv4 地址 (逻辑和操作) 。
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 及更高版本上,头文件已重新组织,此成员可以是 Ipmib.h 头文件中定义的MIB_IPFORWARD_TYPE枚举类型的值之一。 请注意,Ipmib.h 标头自动包含在 Iphlpapi.h 标头文件中。 不应直接使用 Iprtrmib.h 和 Ipmib.h 头文件。
以下列表显示了此成员的可能值。
ForwardType
dwForwardProto
类型:DWORD
生成路由的协议或路由机制,如 RFC 1354 中所述。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc1354.txt。 有关路由 协议 使用的可能协议标识符的列表,请参阅协议标识符。
此成员可以是 Iprtmib.h 头文件中定义的值之一。 此成员的值可以是 Iprtmib.h 头文件中定义的MIB_IPPROTO_xxx值之一,也可以是 routprot.h 头文件中定义的PROTO_IP_xxx值之一,因为这些值相同。
在 Windows Vista 及更高版本上,头文件已重新组织,此成员可以是 Nldef.h 头文件中定义的值之一。 请注意,Ipmib.h 头文件自动包含 Nldef.h 标头,该头文件由 Iprtrmib.h 标头自动包含。 Iphlpapi.h 标头自动包含 Iprtrmib.h 头文件。 永远不应直接使用 Iprtrmib.h、 Ipmib.h 和 Nldef.h 头文件。
以下列表显示了此成员的可能值。
值 | 含义 |
---|---|
|
RFC 1354 中未指定的其他一些协议。 |
|
本地接口。 |
|
静态路由。 此值用于标识通过网络管理(例如动态主机配置协议 (DCHP) 、简单网络管理协议 (SNMP) 或通过调用 CreateIpForwardEntry、 DeleteIpForwardEntry 或 SetIpForwardEntry 函数)设置的 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) ,该协议使用最短路径优先 (SPF) 算法。 这是早期的动态路由协议。 |
|
Open Shortest Path First (OSPF) 协议(一种动态路由协议)。 |
|
边界网关协议 (BGP) ,一种动态路由协议。 |
|
最初由路由协议添加的 Windows 特定条目,但现在是静态的。 |
|
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目。 |
|
从路由用户界面或路由命令添加为静态路由的 Windows 特定条目,但这些路由不会导致按需拨号 (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_IPFORWARDROW结构条目数组的MIB_IPFORWARDTABLE结构中返回此信息。
MIB_IPFORWARDROW 结构的 dwForwardDest、dwForwardMask 和 dwForwardNextHop 成员以网络字节顺序表示 IPv4 地址。
MIB_IPFORWARDROW 结构的 dwForwardProto 成员指定生成路由的协议或路由机制。 路由协议标识符用于标识指定路由协议的路由信息。 例如, MIB_IPPROTO_NETMGMT 用于通过网络管理(例如动态主机配置协议 (DCHP) 、简单网络管理协议 (SNMP) )或通过调用 CreateIpForwardEntry、 DeleteIpForwardEntry 或 SetIpForwardEntry 函数来标识 IP 路由设置的路由信息。 有关可能的协议和路由机制的列表,请参阅协议 标识符 。
MIB_IPFORWARDROW 结构的 dwForwardDest 成员中 0.0.0.0 的 IPv4 地址被视为默认路由。 如果安装了多个网络适配器,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 上,在 MIB_IPFORWARDROW 结构的 dwForwardMetric1 成员中指定的路由指标表示添加到关联接口的 MIB_IPINTERFACE_ROW 结构的指标成员中指定的接口指标的组合。 因此,MIB_IPFORWARDROW 结构的 dwForwardMetric1 成员应等于或大于关联MIB_IPINTERFACE_ROW结构的 Metric 成员。 如果应用程序想要将路由指标设置为 0,则应将MIB_IPFORWARDROW结构的 dwForwardMetric1 成员设置为等于关联MIB_IPINTERFACE_ROW结构的 Metric 成员中指定的接口指标的值。 应用程序可以通过调用 GetIpInterfaceEntry 函数来检索接口指标。
IPv4 路由当前不使用 MIB_IPFORWARDROW 结构的一些成员。 这些成员包括 dwForwardPolicy、 dwForwardNextHopAS、 dwForwardMetric2、 dwForwardMetric3、 dwForwardMetric4 和 dwForwardMetric5。
在为 Windows Vista 及更高版本发布的 Microsoft Windows 软件开发工具包 (SDK) ,头文件的组织已更改。 此结构在 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) |