MIB_IPINTERFACE_ROW 構造体 (netioapi.h)

MIB_IPINTERFACE_ROW構造体は、特定の IP アドレス ファミリのインターフェイス管理情報をネットワーク インターフェイスに格納します。

構文

typedef struct _MIB_IPINTERFACE_ROW {
  ADDRESS_FAMILY                 Family;
  NET_LUID                       InterfaceLuid;
  NET_IFINDEX                    InterfaceIndex;
  ULONG                          MaxReassemblySize;
  ULONG64                        InterfaceIdentifier;
  ULONG                          MinRouterAdvertisementInterval;
  ULONG                          MaxRouterAdvertisementInterval;
  BOOLEAN                        AdvertisingEnabled;
  BOOLEAN                        ForwardingEnabled;
  BOOLEAN                        WeakHostSend;
  BOOLEAN                        WeakHostReceive;
  BOOLEAN                        UseAutomaticMetric;
  BOOLEAN                        UseNeighborUnreachabilityDetection;
  BOOLEAN                        ManagedAddressConfigurationSupported;
  BOOLEAN                        OtherStatefulConfigurationSupported;
  BOOLEAN                        AdvertiseDefaultRoute;
  NL_ROUTER_DISCOVERY_BEHAVIOR   RouterDiscoveryBehavior;
  ULONG                          DadTransmits;
  ULONG                          BaseReachableTime;
  ULONG                          RetransmitTime;
  ULONG                          PathMtuDiscoveryTimeout;
  NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
  ULONG                          LinkLocalAddressTimeout;
  ULONG                          ZoneIndices[ScopeLevelCount];
  ULONG                          SitePrefixLength;
  ULONG                          Metric;
  ULONG                          NlMtu;
  BOOLEAN                        Connected;
  BOOLEAN                        SupportsWakeUpPatterns;
  BOOLEAN                        SupportsNeighborDiscovery;
  BOOLEAN                        SupportsRouterDiscovery;
  ULONG                          ReachableTime;
  NL_INTERFACE_OFFLOAD_ROD       TransmitOffload;
  NL_INTERFACE_OFFLOAD_ROD       ReceiveOffload;
  BOOLEAN                        DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;

メンバー

Family

種類: ADDRESS_FAMILY

アドレス ファミリ。 アドレス ファミリに使用できる値は、 Winsock2.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数とPF_ プロトコル ファミリ定数の値は同一であるため ( たとえば、AF_INETPF_INET)、どちらの定数も使用できます。

Windows Vista 以降およびWindows SDKでは、ヘッダー ファイルのorganizationが変更され、このメンバーに使用できる値は Ws2def.h ヘッダー ファイルで定義されています。 Ws2def.h ヘッダー ファイルは Winsock2.h に自動的に含まれるので、直接使用しないでください。

現在サポートされている値は 、IPv4 と IPv6 のインターネット アドレス ファミリ形式である AF_INETまたはAF_INET6です。

意味
AF_UNSPEC
0
アドレス ファミリが指定されていません。
AF_INET
2
インターネット プロトコル バージョン 4 (IPv4) アドレス ファミリ。
AF_INET6
23
インターネット プロトコル バージョン 6 (IPv6) アドレス ファミリ。

InterfaceLuid

種類: NET_LUID

ネットワーク インターフェイスのローカル一意識別子 (LUID)。

InterfaceIndex

種類: NET_IFINDEX

ネットワーク インターフェイスのローカル インデックス値。 このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその他の状況で変更される可能性があり、永続的と見なすべきではありません。

MaxReassemblySize

種類: ULONG

フラグメント化された IP パケットの最大再構成サイズ (バイト単位)。 このメンバーは現在 0 に設定されており、将来使用するために予約されています。

InterfaceIdentifier

種類: ULONG64

将来利用するために予約されています。 このメンバーは現在、0 に設定されています。

MinRouterAdvertisementInterval

種類: ULONG

この IP インターフェイスの最小ルーター アドバタイズ間隔 (ミリ秒単位)。 IPv6 の場合、このメンバーの既定値は 200 です。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

MaxRouterAdvertisementInterval

種類: ULONG

この IP インターフェイスでのルーターアドバタイズの最大間隔 (ミリ秒単位)。 このメンバーの IPv6 の既定値は 600 です。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

AdvertisingEnabled

型: BOOLEAN

この IP インターフェイスでルーターアドバタイズが有効になっているかどうかを示す 値。 IPv6 の既定値は、インターフェイスがルーターとして機能するように構成されている場合にのみ、ルーター アドバタイズが有効になります。 IPv4 の既定値は、ルーターアドバタイズが無効になっているということです。

ForwardingEnabled

型: BOOLEAN

この IP インターフェイスで IP 転送が有効になっているかどうかを示す 値。

WeakHostSend

型: BOOLEAN

この IP インターフェイスで脆弱なホスト送信モードが有効になっているかどうかを示す 値。

WeakHostReceive

型: BOOLEAN

この IP インターフェイスで脆弱なホスト受信モードが有効になっているかどうかを示す 値。

UseAutomaticMetric

型: BOOLEAN

IP インターフェイスで自動メトリックが使用されているかどうかを示す 値。

UseNeighborUnreachabilityDetection

型: BOOLEAN

この IP インターフェイスで近隣の到達不能検出が有効になっているかどうかを示す 値。

ManagedAddressConfigurationSupported

型: BOOLEAN

IP インターフェイスが DHCP を使用したマネージド アドレス構成をサポートしているかどうかを示す 値。

OtherStatefulConfigurationSupported

型: BOOLEAN

IP インターフェイスが他のステートフル構成 (ルート構成など) をサポートしているかどうかを示す 値。

AdvertiseDefaultRoute

型: BOOLEAN

IP インターフェイスが既定のルートをアドバタイズするかどうかを示す 値。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

RouterDiscoveryBehavior

種類: NL_ROUTER_DISCOVERY_BEHAVIOR

ルーターの検出動作。 このメンバーには、Nldef.h ヘッダー ファイルで定義されているNL_ROUTER_DISCOVERY_BEHAVIOR列挙型の値のいずれかを指定できます。 メンバーは RFC 2461 で説明されています。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。

意味
RouterDiscoveryDisabled
0
ルーターの検出が無効になっています。
RouterDiscoveryEnabled
1
ルーター検出が有効になっています。 これは IPv6 の既定値です。
RouterDiscoveryDhcp
2
ルーター検出は DHCP に基づいて構成されます。 これは IPv4 の既定値です。
RouterDiscoveryUnchanged
-1
この値は、ルーター検出の値を変更しない必要がある場合に、IP インターフェイスのプロパティを設定するときに使用されます。

DadTransmits

種類: ULONG

仮の IP ユニキャスト アドレスで重複アドレス検出を実行しているときに送信された連続するメッセージの数。 値 0 は、仮の IP アドレスに対して重複アドレス検出が実行されないことを示します。 1 の値は、後続の再送信がない 1 つの転送を示します。 IPv4 の場合、このメンバーの既定値は 3 です。 IPv6 の場合、このメンバーの既定値は 1 です。 IPv6 の場合、これらのメッセージは近隣要請要求として送信されます。 このメンバーは、RFC 2462 の DupAddrDetectTransmits として定義されています。 詳細については、「http://www.ietf.org/rfc/rfc2462.txt」を参照してください。

BaseReachableTime

種類: ULONG

ランダムに到達可能な時間のベース (ミリ秒単位)。 メンバーは RFC 2461 で説明されています。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。

RetransmitTime

種類: ULONG

近隣要請タイムアウト (ミリ秒単位)。 メンバーについては、RFC 2461 を参照してください。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。

PathMtuDiscoveryTimeout

種類: ULONG

パス MTU 検出タイムアウト (ミリ秒単位)。

LinkLocalAddressBehavior

種類: NL_LINK_LOCAL_ADDRESS_BEHAVIOR

リンク ローカル アドレスの動作。 このメンバーは、Nldef.h ヘッダー ファイルで定義されているNL_LINK_LOCAL_ADDRESS_BEHAVIOR列挙型の値のいずれかになります。

意味
LinkLocalAlwaysOff
0
リンク ローカル IP アドレスは使用しないでください。
LinkLocalDelayed
1
リンク ローカル IP アドレスは、他のアドレスが使用できない場合にのみ使用します。 これは、IPv4 インターフェイスの既定の設定です。
LinkLocalAlwaysOn
2
常にリンク ローカル IP アドレスを使用します。 これは、IPv6 インターフェイスの既定の設定です。
LinkLocalUnchanged
-1
この値は、リンク ローカル アドレスの動作の値を変更しない必要がある場合に、IP インターフェイスのプロパティを設定するときに使用されます。

LinkLocalAddressTimeout

種類: ULONG

リンク ローカル IP アドレスのタイムアウト (ミリ秒単位)。

ZoneIndices[ScopeLevelCount]

種類: ULONG[ScopeLevelCount]

スコープ ID のゾーン部分を指定する配列。

SitePrefixLength

種類: ULONG

IP インターフェイス アドレスのサイト プレフィックスの長さ (ビット単位)。 IP インターフェイス アドレスのサイト プレフィックスまたはネットワーク部分の長さ (ビット単位)。 IPv4 アドレスの場合、32 より大きい値は無効な値です。 IPv6 アドレスの場合、128 より大きい値は無効な値です。 値 255 は、通常、無効な値を表すために使用されます。

Metric

種類: ULONG

インターフェイス メトリック。 ルート設定の計算に使用される実際のルート メトリックは、MIB_IPFORWARD_ROW2構造の Metric メンバーで指定されたルート メトリック オフセットと、このメンバーで指定されたインターフェイス メトリックの合計であることに注意してください。

NlMtu

種類: ULONG

ネットワーク レイヤーの MTU サイズ (バイト単位)。

Connected

型: BOOLEAN

インターフェイスがネットワーク アクセス ポイントに接続されているかどうかを示す 値。

SupportsWakeUpPatterns

型: BOOLEAN

ネットワーク インターフェイスが Wake on LAN をサポートしているかどうかを示す 値。

SupportsNeighborDiscovery

型: BOOLEAN

IP インターフェイスが近隣探索をサポートするかどうかを示す 値。

SupportsRouterDiscovery

型: BOOLEAN

IP インターフェイスがルーター検出をサポートするかどうかを示す 値。

ReachableTime

種類: ULONG

到達可能なタイムアウト (ミリ秒単位)。

TransmitOffload

種類: NL_INTERFACE_OFFLOAD_ROD

IP インターフェイスの送信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD構造体は、Nldef.h ヘッダー ファイルで定義されます。

ReceiveOffload

種類: NL_INTERFACE_OFFLOAD_ROD

IP インターフェイスの受信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD構造体は、Nldef.h ヘッダー ファイルで定義されます。

DisableDefaultRoutes

型: BOOLEAN

インターフェイスで既定のルートを使用することを無効にするかどうかを示す 値。 このメンバーは、VPN クライアントで分割トンネリングを制限するために使用できます。

注釈

MIB_IPINTERFACE_ROW構造は、Windows Vista 以降で定義されています。

FamilyInterfaceLuidInterfaceIndex の各メンバーは、MIB_IPINTERFACE_ROWエントリを一意に識別します。

ユニキャスト パケットがホストに到着すると、IP はパケットがローカル宛てであるかどうかを判断する必要があります (その宛先は、ホストのインターフェイスに割り当てられているアドレスと一致します)。 弱いホスト モデルに従う IP 実装は、パケットが受信されたインターフェイスに関係なく、ローカル宛てのパケットを受け入れます。 強力なホスト モデルに従う IP 実装では、パケット内の宛先アドレスが、パケットを受信したインターフェイスに割り当てられたアドレスと一致する場合にのみ、ローカル宛てのパケットを受け入れます。 弱いホスト モデルにより、ネットワーク接続が向上します。 ただし、ホストはマルチホーム ベースのネットワーク攻撃の影響を受けやすくなります。

Windows Server 2003 および Windows XP の現在の IPv4 実装では、弱いホスト モデルが使用されています。 この場合、すべてのユニキャスト パケットは、ルートの最小メトリックでインターフェイスから送信されます。

Windows Vista 以降の TCP/IP スタックでは、IPv4 と IPv6 の両方の強力なホスト モデルがサポートされており、既定で強力なホスト モードを使用するように構成されています ( WeakHostReceive メンバーと WeakHostSend メンバーは FALSE に設定されています)。 強力なホスト モードでは、ソケットを特定のインターフェイスのソース アドレスにバインドすることで、ルートのメトリックが最も低くない特定のインターフェイスからユニキャスト パケットを送信できます。

Windows Vista 以降の TCP/IP スタックは、弱いホスト モデルを使用するように構成できます。

メトリックは、特定のネットワーク インターフェイスの IP ルートに割り当てられた値であり、そのルートの使用に関連付けられているコストを識別します。 たとえば、メトリックは、リンク速度、ホップ数、または遅延時間の観点から評価できます。 自動メトリックは、リンク速度に基づいてローカル ルートのメトリックを自動的に構成する Windows XP 以降の機能です。 自動メトリック機能は、Windows XP 以降では既定で有効になっています ( UseAutomaticMetricTRUE に設定されています)。 また、IP ルートに特定のメトリックを割り当てるために手動で構成することもできます。

自動メトリック機能は、ルーティング テーブルに同じ宛先の複数のルートが含まれている場合に役立ちます。 たとえば、10 メガビット ネットワーク インターフェイスと 100 メガビット ネットワーク インターフェイスを持つコンピューターには、両方のネットワーク インターフェイスで構成された既定のゲートウェイがあります。 UseAutomaticMetricTRUE の場合、この機能を使用すると、インターネット宛てのすべてのトラフィックを強制的に使用できます。たとえば、使用可能な最速のネットワーク インターフェイスを使用できます。

Metric メンバーで指定されたインターフェイス メトリックは、インターフェイスのメトリックのみを表します。 完全なルーティング メトリックは、このインターフェイスで指定されたルート エントリのMIB_IPFORWARD_ROW2構造の Metric メンバーで指定されたルート メトリック オフセットに追加される、このインターフェイス メトリックの組み合わせです。

セキュリティ要件が異なる複数のネットワークへの特権のない同時アクセスは、セキュリティ ホールを作成し、特権のないアプリケーションが 2 つのネットワーク間で誤ってデータを中継できるようにします。 一般的な例として、仮想プライベート ネットワーク (VPN) とインターネットへの同時アクセスがあります。 Windows Server 2003 と Windows XP では弱いホスト モデルが使用されます。RAS では、他のインターフェイス上のすべての既定のルートのルート メトリックを増やすことで、このような同時アクセスを防止します。 したがって、すべてのトラフィックは VPN インターフェイスを介してルーティングされ、他のネットワーク接続が中断されます。

Windows Vista 以降では、強力なホスト モデルが既定で使用されます。 GetBestRoute2 または GetBestRoute を使用してルート参照でソース IP アドレスが指定されている場合、ルート参照はソース IP アドレスのインターフェイスに制限されます。 RAS によるルート メトリックの変更は影響しません。潜在的なルートの一覧には VPN インターフェイスのルートがないため、インターネットへのトラフィックが許可されます。 MIB_IPINTERFACE_ROW構造体の DisableDefaultRoutes メンバーを使用すると、インターフェイスで既定のルートを使用して無効にすることができます。 このメンバーは、VPN クライアントによって分割トンネリングが必要ない場合に分割トンネリングを制限するために、VPN クライアントによるセキュリティ対策として使用できます。 VPN クライアントは SetIpInterfaceEntry 関数を呼び出して、必要に応じて DisableDefaultRoutes メンバーを TRUE に設定できます。 VPN クライアントは、GetIpInterfaceEntry 関数を呼び出すことによって、DisableDefaultRoutes メンバーの現在の状態を照会できます。

Netioapi.h ヘッダー ファイルは Iphlpapi.h ヘッダー ファイルに自動的に含まれることに注意してください。 Netioapi.h ヘッダー ファイルを直接使用しないでください。

MIB_IPINTERFACE_TABLE構造体を取得し、この表のMIB_IPINTERFACE_ROW構造体エントリのいくつかのメンバーを出力する例を表示するには、GetIpInterfaceTable 関数を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header netioapi.h (Iphlpapi.h を含む)

こちらもご覧ください

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry