IP ヘルパーの概要
インターネット プロトコル ヘルパー (IP ヘルパー) を使用すると、ドライバーはローカル コンピューターのネットワーク構成に関する情報を取得し、その構成を変更できます。 また、IP ヘルパーには、ローカル コンピューターのネットワーク構成の特定の側面が変更されたときにドライバーに通知を受け取るようにする通知メカニズムも用意されています。 IP ヘルパーは、Windows Vista 以降のバージョンの Microsoft Windows オペレーティング システムで使用できます。
IP ヘルパー関数の多くは、管理情報ベース (MIB) テクノロジに関連付けられているデータ型を表す構造体パラメーターを渡します。 IP ヘルパー関数は、これらの MIB 構造を使用して、さまざまなネットワーク情報を表します。
IP Helper のドキュメントでは、アダプターおよびインターフェイスという用語が広範囲に使用されています。
インターフェイス は、IETF RFC ドキュメントで、リンクへのノードの添付ファイルを表す抽象的な概念として説明されています。 インターフェイスは IP レベルの抽象化です。
ドライバーは、次のカーネル モード関数、MIB 構造体、および MIB およびネットワーク層 (NL) 列挙体を使用して、ローカル コンピューター上の伝送制御プロトコル/インターネット プロトコル (TCP/IP) トランスポートの構成設定を取得および変更できます。
手記
ドライバー コードを開発するときは、ヘッダー ファイルを含む の指示に従います。
インターフェイス変換関数
機能 | 説明 |
---|---|
ConvertInterfaceAliasToLuid | ネットワーク インターフェイスのローカル一意識別子 (LUID) を Unicode インターフェイス名に変換します。 |
ConvertInterfaceGuidToLuid | ネットワーク インターフェイスのグローバル一意識別子 (GUID) をインターフェイスの LUID に変換します。 |
ConvertInterfaceIndexToLuid | ネットワーク インターフェイスのローカル インデックスをインターフェイスの LUID に変換します。 |
ConvertInterfaceLuidToAlias | ネットワーク インターフェイスの LUID をインターフェイス エイリアスに変換します。 |
ConvertInterfaceLuidToGuid | ネットワーク インターフェイスの LUID をインターフェイスの GUID に変換します。 |
ConvertInterfaceLuidToIndex | ネットワーク インターフェイスの LUID を、インターフェイスのローカル インデックスに変換します。 |
ConvertInterfaceLuidToNameA | ネットワーク インターフェイスの LUID を ANSI インターフェイス名に変換します。 |
ConvertInterfaceLuidToNameW | ネットワーク インターフェイスの LUID を Unicode インターフェイス名に変換します。 |
ConvertInterfaceNameToLuidA | ANSI ネットワーク インターフェイス名をインターフェイスの LUID に変換します。 |
ConvertInterfaceNameToLuidW | Unicode ネットワーク インターフェイス名をインターフェイスの LUID に変換します。 |
if_indextoname | ネットワーク インターフェイスのローカル インデックスを ANSI インターフェイス名に変換します。 |
if_nametoindex | ネットワーク インターフェイスの ANSI インターフェイス名を、インターフェイスのローカル インデックスに変換します。 |
インターフェイス管理機能
機能 | 説明 |
---|---|
GetIfEntry2 | ローカル コンピューター上の指定したインターフェイスの情報を取得します。 |
GetIfStackTable | インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを指定するネットワーク インターフェイス スタック行エントリのテーブルを取得します。 |
GetIfTable2 | MIB-II インターフェイス テーブルを取得します。 |
GetIfTable2Ex | 取得するインターフェイス情報のレベルを指定して、MIB-II インターフェイス テーブルを取得します。 |
GetInvertedIfStackTable | インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを指定する反転ネットワーク インターフェイス スタック行エントリのテーブルを取得します。 |
GetIpInterfaceEntry | ローカル コンピューター上の指定したインターフェイスの IP 情報を取得します。 |
GetIpInterfaceTable | ローカル コンピューター上の IP インターフェイス エントリを取得します。 |
InitializeIpInterfaceEntry | 既定値を使用して、MIB_IPINTERFACE_ROW 構造体エントリのメンバーを初期化します。 |
SetIpInterfaceEntry | ローカル コンピューター上の IP インターフェイスのプロパティを設定します。 |
IP アドレス管理機能
機能 | 説明 |
---|---|
CreateAnycastIpAddressEntry | ローカル コンピューターに新しいエニーキャスト IP アドレス エントリを追加します。 |
CreateSortedAddressPairs | 指定された宛先アドレスのリストをホスト コンピューターのローカル IP アドレスとペアにし、通信の優先順序に従ってペアを並べ替えます。 |
CreateUnicastIpAddressEntry | ローカル コンピューターに新しいユニキャスト IP アドレス エントリを追加します。 |
DeleteAnycastIpAddressEntry | 既存のエニーキャスト IP アドレス エントリをローカル コンピューターから削除します。 |
DeleteUnicastIpAddressEntry | ローカル コンピューターから既存のユニキャスト IP アドレス エントリを削除します。 |
GetAnycastIpAddressEntry | ローカル コンピューター上の既存のエニーキャスト IP アドレス エントリの情報を取得します。 |
GetAnycastIpAddressTable | ローカル コンピューター上のエニーキャスト IP アドレス テーブルを取得します。 |
GetMulticastIpAddressEntry | ローカル コンピューター上の既存のマルチキャスト IP アドレス エントリの情報を取得します。 |
GetMulticastIpAddressTable | ローカル コンピューター上のマルチキャスト IP アドレス テーブルを取得します。 |
GetUnicastIpAddressEntry | ローカル コンピューター上の既存のユニキャスト IP アドレス エントリの情報を取得します。 |
GetUnicastIpAddressTable | ローカル コンピューター上のユニキャスト IP アドレス テーブルを取得します。 |
InitializeUnicastIpAddressEntry | ローカル コンピューター上のユニキャスト IP アドレス エントリの既定値を使用して、MIB_UNICASTIPADDRESS_ROW 構造体を初期化します。 |
NotifyStableUnicastIpAddressTable | ローカル コンピューター上の安定したユニキャスト IP アドレス テーブルを取得します。 |
SetUnicastIpAddressEntry | ローカル コンピューター上の既存のユニキャスト IP アドレス エントリのプロパティを設定します。 |
IP 近隣アドレス管理機能
機能 | 説明 |
---|---|
CreateIpNetEntry2 | ローカル コンピューターに新しい近隣 IP アドレス エントリを作成します。 |
DeleteIpNetEntry2 | ローカル コンピューターから近隣 IP アドレス エントリを削除します。 |
FlushIpNetTable2 | ローカル コンピューター上の IP ネイバー テーブルをフラッシュします。 |
GetIpNetEntry2 | ローカル コンピューター上の近隣 IP アドレス エントリの情報を取得します。 |
GetIpNetTable2 | ローカル コンピューター上の IP 近隣テーブルを取得します。 |
ResolveIpNetEntry2 | ローカル コンピューター上の近隣 IP アドレス エントリの物理アドレスを解決します。 |
SetIpNetEntry2 | ローカル コンピューター上の既存の近隣 IP アドレス エントリの物理アドレスを設定します。 |
IP パス管理機能
機能 | 説明 |
---|---|
FlushIpPathTable | ローカル コンピューター上の IP パス テーブルをフラッシュします。 |
GetIpPathEntry | ローカル コンピューター上の IP パス エントリの情報を取得します。 |
GetIpPathTable | ローカル コンピューター上の IP パス テーブルの情報を取得します。 |
IP ルート管理機能
機能 | 説明 |
---|---|
CreateIpForwardEntry2 | ローカル コンピューターに新しい IP ルート エントリを作成します。 |
DeleteIpForwardEntry2 | ローカル コンピューターから IP ルート エントリを削除します。 |
GetBestRoute2 | 指定した宛先 IP アドレスへの最適なルートのローカル コンピューター上の IP ルート エントリを取得します。 |
GetIpForwardEntry2 | ローカル コンピューター上の IP ルート エントリの情報を取得します。 |
GetIpForwardTable2 | ローカル コンピューター上の IP ルート エントリを取得します。 |
InitializeIpForwardEntry | ローカル コンピューター上の IP ルート エントリの既定値を使用して、MIB_IPFORWARD_ROW2 構造体を初期化します。 |
SetIpForwardEntry2 | ローカル コンピューター上の IP ルート エントリのプロパティを設定します。 |
IP テーブルのメモリ管理機能
機能 | 説明 |
---|---|
FreeMibTable | ネットワーク インターフェイス、アドレス、ルートのテーブルを返す関数によって割り当てられるバッファーを解放します (たとえば、GetIfTable2 |
通知関数
機能 | 説明 |
---|---|
CancelMibChangeNotify2 | IP インターフェイスの変更、IP アドレスの変更、IP ルートの変更、安定したユニキャスト IP アドレス テーブルの取得要求に関する変更通知のドライバーを登録解除します。 |
NotifyIpInterfaceChange | ローカル コンピューター上のすべての IP インターフェイス、IPv4 インターフェイス、または IPv6 インターフェイスへの変更を通知するドライバーを登録します。 |
NotifyRouteChange2 | ローカル コンピューター上の IP ルート エントリに対する変更の通知を受け取るレジスタ。 |
NotifyUnicastIpAddressChange | ローカル コンピューター上のすべてのユニキャスト IP インターフェイス、ユニキャスト IPv4 アドレス、またはユニキャスト IPv6 アドレスへの変更を通知するレジスタ。 |
Teredo IPv6 クライアント管理機能
機能 | 説明 |
---|---|
GetTeredoPort | Teredo クライアントがローカル コンピューターで使用する動的 UDP ポート番号を取得します。 |
Teredoポート変更通知 | Teredo クライアントがローカル コンピューター上の Teredo サービス ポートに使用する UDP ポート番号の変更を通知するレジスタ。 |
NotifyStableUnicastIpAddressTable | ローカル コンピューター上の安定したユニキャスト IP アドレス テーブルを取得します。 |
MIB 構造体
構造 | 説明 |
---|---|
IP_ADDRESS_PREFIX | IP アドレス プレフィックスを格納します。 |
MIB_ANYCASTIPADDRESS_ROW | エニーキャスト IP アドレスに関する情報を格納します。 |
MIB_ANYCASTIPADDRESS_TABLE | エニーキャスト IP アドレス エントリのテーブルが含まれています。 |
MIB_IF_ROW2 | 特定のインターフェイスに関する情報を格納します。 |
MIB_IF_TABLE2 | 論理インターフェイスエントリと物理インターフェイス エントリのテーブルが含まれています。 |
MIB_IFSTACK_ROW | 2 つのネットワーク インターフェイス間の関係を表します。 |
MIB_IFSTACK_TABLE | ネットワーク インターフェイス スタック内の行エントリのテーブルが含まれています。 次の表は、インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを指定します。 |
MIB_INVERTEDIFSTACK_ROW | 2 つのネットワーク インターフェイス間の関係を表します。 |
MIB_INVERTEDIFSTACK_TABLE | 反転されたネットワーク インターフェイス スタック行エントリのテーブルが含まれています。 次の表は、インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを逆の順序で指定します。 |
MIB_IPFORWARD_ROW2 | IP ルート エントリに関する情報を格納します。 |
MIB_IPFORWARD_TABLE2 | IP ルート エントリのテーブルが含まれています。 |
MIB_IPINTERFACE_ROW | 特定の IP アドレス ファミリのインターフェイス管理情報をネットワーク インターフェイスに格納します。 |
MIB_IPINTERFACE_TABLE | IP インターフェイス エントリのテーブルが含まれています。 |
MIB_IPNET_ROW2 | 近隣 IP アドレスに関する情報を格納します。 |
MIB_IPNET_TABLE2 | 近隣 IP アドレス エントリのテーブルが含まれています。 |
MIB_IPPATH_ROW | IP パス エントリに関する情報を格納します。 |
MIB_IPPATH_TABLE | IP パス エントリのテーブルが含まれています。 |
MIB_MULTICASTIPADDRESS_ROW | マルチキャスト IP アドレスに関する情報を格納します。 |
MIB_MULTICASTIPADDRESS_TABLE | マルチキャスト IP アドレス エントリのテーブルが含まれています。 |
MIB_UNICASTIPADDRESS_ROW | ユニキャスト IP アドレスに関する情報を格納します。 |
MIB_UNICASTIPADDRESS_TABLE | ユニキャスト IP アドレス エントリのテーブルが含まれています。 |
MIB 列挙型
列挙 | 説明 |
---|---|
MIB_IF_TABLE_LEVEL | 取得するインターフェイス情報のレベルを定義します。 |
MIB_NOTIFICATION_TYPE | 通知が発生したときにコールバック関数に渡される通知の種類を定義します。 |
NL 列挙型
列挙 | 説明 |
---|---|
NL_ADDRESS_TYPE | ネットワーク 層の IP アドレスの種類を指定します。 |
NL_DAD_STATE | 重複アドレス検出 (DAD) 状態を定義します。 |
NL_LINK_LOCAL_ADDRESS_BEHAVIOR | リンク ローカル アドレスの動作を定義します。 |
NL_NEIGHBOR_STATE | RFC 2461、セクション 7.3.2 で説明されているように、ネットワーク 層の近隣 IP アドレスの状態を定義します。 |
NL_PREFIX_ORIGIN | IP アドレスのプレフィックスまたはネットワーク部分の発信元を定義します。 |
NL_ROUTE_ORIGIN | IP ルートの配信元を定義します。 |
NL_ROUTE_PROTOCOL | RFC 4292 で説明されているように、IP ルートが追加されたルーティング メカニズムを定義します。 |
NL_ROUTER_DISCOVERY_BEHAVIOR | RFC 2461 で説明されているように、ルーター検出動作を定義します。 |
NL_SUFFIX_ORIGIN | IP アドレスのサフィックスまたはホスト部分の発信元を定義します。 |