次の方法で共有


CreateIpNetEntry2 関数

CreateIpNetEntry2 関数は、ローカル コンピューターに新しい近隣 IP アドレス エントリを作成します。

構文

NETIOAPI_API CreateIpNetEntry2(
  _In_ const MIB_IPNET_ROW2 *Row
);

パラメーター

  • Row [in]
    IP ルート エントリの MIB_IPNET_ROW2 構造体エントリへのポインター。

戻り値

関数が成功した場合、CreateIpNetEntry2 は STATUS_SUCCESS を返します。

関数が失敗した場合、CreateIpNetEntry2 は次のいずれかのエラー コードを返します:

リターン コード 説明
STATUS_INVALID_PARAMETER

その関数に無効なパラメーターが渡された。 このエラーは、次のいずれかの項目が発生した場合に返されます。

  • Row パラメーターには NULL ポインターが渡されます。

  • Row パラメーターが指す MIB_IPNET_ROW2 構造体の Address メンバーが、有効なユニキャスト、エニーキャスト、またはマルチキャスト IPv4 または IPv6 アドレスに設定されなかった。

  • MIB_IPNET_ROW2 構造体の PhysicalAddress メンバーと PhysicalAddressLength メンバーが、有効な物理アドレスに設定されなかった。

  • MIB_IPFORWARD_ROW2 構造体の InterfaceLuid メンバーと InterfaceIndex メンバーの両方が指定されていなかった。

  • ループバック アドレスが Address メンバーで渡された。

STATUS_NOT_FOUND

指定されたインターフェイスが見つかりませんでした。 このエラーは、Row パラメーターが指す MIB_IPNET_ROW2 構造体の InterfaceLuid メンバーまたは InterfaceIndex メンバーで指定されるネットワーク インターフェイスを関数が見つけられない場合に返されます。

STATUS_NOT_SUPPORTED

要求はサポートされていません。 このエラーは、ローカル コンピューター上に IPv4 スタックがなく、Row パラメーターが指す MIB_IPNET_ROW2 構造体の Address メンバーに IPv4 アドレスが指定されている場合、またはローカル コンピューターに IPv6 スタックがなく、Address メンバーに IPv6 アドレスが指定されている場合に返されます。

ERROR_OBJECT_ALREADY_EXISTS

オブジェクトが既に存在します。 このエラーは、Row パラメーターが指す MIB_IPNET_ROW2 構造体のAddress メンバーが、MIB_IPNET_ROW2構造体の InterfaceLuid またはInterfaceIndexメンバーによって指定されたインターフェイス上の既存の近隣 IP アドレスと重複している場合に返されます。

その他

FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。

解説

ドライバーは、Row パラメーターが指す MIB_IPNET_ROW2 構造体の次のメンバーを初期化する必要があります。

  • アドレス メンバーを有効なユニキャスト、エニーキャスト、またはマルチキャスト IPv4 または IPv6 アドレスとファミリに設定します。

  • MIB_IPNET_ROW2構造体の PhysicalAddress メンバーと PhysicalAddressLength メンバーが、有効な物理アドレスに設定されなかった。

  • InterfaceLuid または InterfaceIndex をインターフェイスの LUID またはインデックス値に設定します。

InterfaceLuid メンバーと InterfaceIndex メンバーは、前述の順序で使用されます。 したがって、 InterfaceLuid が指定されている場合、このメンバーを使用して、ユニキャスト IP アドレスを追加するインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない (このメンバーの値がゼロに設定されている) 場合は、InterfaceIndex メンバーが次にインターフェイスを決定するために使用されます。

CreateIpNetEntry2 関数は、Row パラメーターが指す MIB_IPNET_ROW2 構造体の Address メンバーで渡される IP アドレスが、インターフェイス上の既存の近隣 IP アドレスと重複している場合に失敗します。

要件

対象プラットフォーム

ユニバーサル

バージョン

Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。

ヘッダー

Netioapi.h (Netioapi.h を含む)

ライブラリ

Netio.lib

IRQL

< DISPATCH_LEVEL

関連項目

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2