SetIpInterfaceEntry

ローカルコンピュータ上の IP インターフェイスのプロパティを設定する。

SetIpInterfaceEntry Row

Row : [var] インターフェイスの MIB_IPINTERFACE_ROW 構造体エントリへのポインタ。入力時、Family は AF_INET6 または AF_INET に設定し、InterfaceLuid または InterfaceIndex を指定する必要がある。正常終了時、InterfaceIndex を指定していた場合には InterfaceLuid が埋められる。

(プラグイン / モジュール : iphlpapi.dll)

解説

ローカルコンピュータ上の IP インターフェイスのプロパティを設定する。

[戻り値]
関数が成功すると、戻り値は NO_ERROR である。失敗した場合は以下のエラーコードのいずれかが返される。
このドキュメントは省略されている。

[備考]
SetIpInterfaceEntry 関数は Windows Vista 以降で定義され、既存の IP
インターフェイスエントリを変更する。入力時、Family は AF_INET または AF_INET6、InterfaceLuid または
InterfaceIndex の少なくとも一方を初期化しなければならない。前者が 0
なら後者が使われる。出力時、InterfaceIndex 指定なら InterfaceLuid
が埋められる。MaxReassemblySize、MinRouterAdvertisementInterval、MaxRouterAdvertisementInterval、Connected、SupportsWakeUpPatterns、SupportsNeighborDiscovery、SupportsRouterDiscovery、ReachableTime、TransmitOffload、ReceiveOffload
は SetIpInterfaceEntry 呼び出し時には無視される (ネットワークスタックが設定)。通常は
GetIpInterfaceTable / GetIpInterfaceEntry で取得し、構造体を変更して
SetIpInterfaceEntry に渡す。IPv4 では SitePrefixLength は変更してはならず、0
にしなければならない。あるいは InitializeIpInterfaceEntry で既定値に初期化し、Family と
InterfaceIndex/InterfaceLuid を設定する方法もある。
セキュリティ要件の異なる複数ネットワークへの特権なし同時アクセスはセキュリティホールを生じる。典型例として VPN
とインターネットへの同時アクセスが挙げられる。Windows Server 2003 / XP は weak host model
を用い、RAS が既定経路のメトリックを増やすことでトラフィックを VPN インターフェイス経由にルーティングする。Windows
Vista 以降は strong host model が既定で、GetBestRoute2 / GetBestRoute に送信元 IP
を指定すると経路ルックアップは送信元インターフェイスに限定され、RAS
のメトリック変更の効果はない。DisableDefaultRoutes メンバを TRUE
に設定することで既定経路の使用を無効化でき、VPN
クライアントがスプリットトンネリングを制限するのに使用できる。SetIpInterfaceEntry は Administrators
グループメンバのみが呼び出せ、それ以外は ERROR_ACCESS_DENIED。UAC のため、組み込み Administrator
以外は requestedExecutionLevel=requireAdministrator または RunAs
administrator 実行が必要。

情報

プラグイン / モジュールiphlpapi.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の iphlpapi.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_iphlpapi_gen2.hs