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 のエントリは、既定のルートと見なされます。 このメンバーをマルチキャスト (クラス D) IPv4 アドレスに設定することはできません。
dwForwardMask
型: DWORD
dwForwardDest メンバーの値と比較する前に、宛先 IPv4 アドレスで使用する IPv4 サブネット マスク。
dwForwardMask 値は、dwForwardDest メンバーの値と比較する前に、宛先 IPv4 アドレス (論理および操作) に適用する必要があります。
dwForwardPolicy
型: DWORD
マルチパス ルート (特定の宛先のネクスト ホップのセット) の選択を引き起こす条件のセット。 このメンバーは通常、IP TOS 形式です。 このメンバーのエンコードについては、RFC 1354 を参照してください。 詳細については、「http://www.ietf.org/rfc/rfc1354.txt」を参照してください。
dwForwardNextHop
型: DWORD
リモート ルートの場合は、次のシステムの IPv4 アドレスがルートです。 それ以外の場合、このメンバーは 0.0.0.0 の IPv4 アドレスである必要があります。
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 ヘッダー ファイルによって自動的に含まれることに注意してください。 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 ヘッダー ファイルで定義されている値のいずれかになります。 Nldef.h ヘッダーは、Iprtrmib.h ヘッダーによって自動的に含まれる Ipmib.h ヘッダー ファイルによって自動的に含まれることに注意してください。 Iphlpapi.h ヘッダーには、Iprtrmib.h ヘッダー ファイルが自動的に含まれます。 Iprtrmib.h、Ipmib.h、Nldef.h ヘッダー ファイルを直接使用しないでください。
次の一覧に、このメンバーで使用できる値を示します。
値 | 説明 |
---|---|
|
RFC 1354 で指定されていないその他のプロトコル。 |
|
ローカル インターフェイス。 |
|
静的ルート。 この値は、動的ホスト構成プロトコル (DCHP)、簡易ネットワーク管理プロトコル (SNMP) などのネットワーク管理、または CreateIpForwardEntry、DeleteIpForwardEntry、または SetIpForwardEntry 関数の呼び出しによって設定された IP ルーティングのルート情報を識別するために使用されます。 |
|
ICMP リダイレクトの結果。 |
|
外部ゲートウェイ プロトコル (EGP)、動的ルーティング プロトコル。 |
|
動的ルーティング プロトコルであるゲートウェイ間プロトコル (GGP)。 |
|
Hellospeak プロトコル(動的ルーティング プロトコル)。 これは使用されなくなった履歴エントリであり、RFC 891 と RFC 1305 で説明されているように、Fuzzball ルーティング プロトコル (Hellospeak とも呼ばれる) と呼ばれる特別なソフトウェアを実行した、元の ARPANET ルーターで使用される初期のルーティング プロトコルでした。 詳細については、次のトピックを参照してください。 http://www.ietf.org/rfc/rfc891.txt および http://www.ietf.org/rfc/rfc1305.txt |
|
バークレイ ルーティング情報プロトコル (RIP) または RIP-II (動的ルーティング プロトコル)。 |
|
中間システム間システム (IS-IS) プロトコル(動的ルーティング プロトコル)。 IS-IS プロトコルは、Open Systems Interconnection (OSI) プロトコル スイートで使用するために開発されました。 |
|
エンド システム間システム (ES-IS) プロトコル(動的ルーティング プロトコル)。 ES-IS プロトコルは、Open Systems Interconnection (OSI) プロトコル スイートで使用するために開発されました。 |
|
Cisco Interior Gateway ルーティング プロトコル(IGRP)、ダイナミック ルーティング プロトコル。 |
|
最短パスファースト (SPF) アルゴリズムを使用した Bolt、Beranek、および Newman (BBN) Interior Gateway Protocol (IGP)。 これは初期の動的ルーティング プロトコルでした。 |
|
Open Shortest Path First (OSPF) プロトコル (動的ルーティング プロトコル)。 |
|
ボーダー ゲートウェイ プロトコル (BGP)、動的ルーティング プロトコル。 |
|
ルーティング プロトコルによって最初に追加された Windows 固有のエントリですが、現在は静的です。 |
|
ルーティング ユーザー インターフェイスまたはルーティング コマンドから静的ルートとして追加された Windows 固有のエントリ。 |
|
これらのルートを除き、ルーティング ユーザー インターフェイスまたはルーティング コマンドから静的ルートとして追加された Windows 固有のエントリでは、ダイヤル オンデマンド (DOD) は発生しません。 |
ForwardProto
dwForwardAge
型: DWORD
ネットワーク ルーティング テーブルでルートが追加または変更されてからの秒数。
dwForwardNextHopAS
型: DWORD
次ホップの自律システム番号。 このメンバーが不明な場合、または dwForwardProto で指定されたプロトコルまたはルーティング メカニズムに関連しない場合は、この値を 0 に設定する必要があります。 この値は 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返します。
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には、複数のネットワーク アダプターがインストールされている場合、dwForwardDest メンバーが 0.0.0.0 に設定された複数のMIB_IPFORWARDROW エントリが含まれる場合があります。
dwForwardAge が INFINITE に設定されている場合、タイムアウトに基づいてルートは削除されません
値を表します。 dwForwardAge のその他の値は、ネットワーク ルーティング テーブルでルートが追加または変更されてからの秒数を指定します。
ルーティングおよびリモート アクセス サービス (RRAS) が実行されている Windows Server 2003 または Windows 2000 Server では、返される MIB_IPFORWARDROW エントリの dwForwardType メンバーと dwForwardAge メンバーが 0 に設定されます。
Windows Vista および Windows Server 2008 では、MIB_IPFORWARDROW構造体の dwForwardMetric1 メンバーで指定されたルート メトリックは、関連付けられたインターフェイスの MIB_IPINTERFACE_ROW 構造体の Metric メンバーで指定されたインターフェイス メトリックに追加されたルート メトリックの組み合わせを表します。 そのため、MIB_IPFORWARDROW構造体の dwForwardMetric1 メンバーは、関連付けられているMIB_IPINTERFACE_ROW構造体の Metric メンバー以上である必要があります。 アプリケーションでルート メトリックを 0 に設定する場合は、MIB_IPFORWARDROW構造体の dwForwardMetric1 メンバーを、関連付けられているMIB_IPINTERFACE_ROW構造体の Metric メンバーで指定されたインターフェイス メトリックの値と等しく設定する必要があります。 アプリケーションは、 GetIpInterfaceEntry 関数を呼び出すことによってインターフェイス メトリックを取得できます。
MIB_IPFORWARDROW構造体のメンバーの数は、現在、IPv4 ルーティングでは使用されていません。 これらのメンバーには、 dwForwardPolicy、 dwForwardNextHopAS、 dwForwardMetric2、 dwForwardMetric3、 dwForwardMetric4、 dwForwardMetric5 が含まれます。
Windows Vista 以降用にリリースされた Microsoft Windows ソフトウェア開発キット (SDK) では、ヘッダー ファイルのorganizationが変更されました。 この構造体は 、Iprtrmib.h ヘッダー ファイルではなく、 Ipmib.h ヘッダー ファイルで定義されます。 Ipmib.h ヘッダー ファイルは、Iphlpapi.h ヘッダー ファイルに自動的に含まれる Iprtrmib.h に自動的に含まれることに注意してください。 Ipmib.h および Iprtrmib.h ヘッダー ファイルを直接使用しないでください。
例
MIB_IPFORWARDTABLE構造体を取得し、この表のMIB_IPFORWARDROW構造体エントリを出力する例を表示するには、GetIpForwardTable 関数を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | ipmib.h (Iphlpapi.h を含む) |