CreateIpNetEntry2 関数 (netioapi.h)

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

構文

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API CreateIpNetEntry2(
  [in] const MIB_IPNET_ROW2 *Row
);

パラメーター

[in] Row

近隣 IP アドレス エントリの MIB_IPNET_ROW2 構造体エントリへのポインター。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
ERROR_ACCESS_DENIED
アクセスが拒否されました。 このエラーは、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、NULL ポインターが Row パラメーターで渡され、Row パラメーターによって指されるMIB_IPNET_ROW2Address メンバーが有効なユニキャスト、エニーキャスト、またはマルチキャスト IPv4 または IPv6 アドレスに設定されなかった場合に返されます。Row パラメーターが指すMIB_IPNET_ROW2PhysicalAddress メンバーと PhysicalAddressLength メンバーが有効な物理アドレスに設定されていません。 または、Row パラメーターが指すMIB_IPNET_ROW2InterfaceLuid メンバーまたは InterfaceIndex メンバーの両方が指定されていませんでした。 このエラーは、ループバック アドレスが Address メンバーで渡された場合にも返されます。
ERROR_NOT_FOUND
指定したインターフェイスが見つかりませんでした。 Row パラメーターが指すMIB_IPNET_ROW2InterfaceLuid メンバーまたは InterfaceIndex メンバーによって指定されたネットワーク インターフェイスが見つからなかった場合、このエラーが返されます。
ERROR_NOT_SUPPORTED
要求はサポートされていません。 このエラーは、ローカル コンピューター上に IPv4 スタックがなく、Row パラメーターによって指されるMIB_IPNET_ROW2の Address メンバーで IPv4 アドレスが指定されている場合に返されます。 このエラーは、ローカル コンピューター上に IPv6 スタックがなく、 アドレス メンバーで IPv6 アドレスが指定されている場合にも返されます。
ERROR_OBJECT_ALREADY_EXISTS
オブジェクトが既に存在します。 Row パラメーターが指すMIB_IPNET_ROW2の Address メンバーが、MIB_IPNET_ROW2InterfaceLuid または InterfaceIndex メンバーによって指定されたインターフェイス上の既存の近隣 IP アドレスの複製である場合、このエラーが返されます。
その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

注釈

CreateIpNetEntry2 関数は、Windows Vista 以降で定義されています。

CreateIpNetEntry2 関数は、ローカル コンピューターに新しい近隣 IP アドレス エントリを追加するために使用されます。

Row パラメーターが指すMIB_IPNET_ROW2構造体の Address メンバーは、有効なユニキャスト、エニーキャスト、またはマルチキャスト IPv4 または IPv6 アドレスとファミリに初期化する必要があります。 Row パラメーターが指すMIB_IPNET_ROW2構造体の PhysicalAddress メンバーと PhysicalAddressLength メンバーは、有効な物理アドレスに初期化する必要があります。 さらに、Row パラメーターを指すMIB_IPNET_ROW2構造体の少なくとも 1 つのメンバーをインターフェイスに初期化する必要があります。 InterfaceLuid または InterfaceIndex

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

CreateIpNetEntry2 関数は、Row パラメーターが指すMIB_IPNET_ROW2Address メンバーに渡された IP アドレスが、インターフェイス上の既存の近隣 IP アドレスの複製である場合に失敗します。

CreateIpNetEntry2 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 CreateIpNetEntry2 が Administrators グループのメンバーではないユーザーによって呼び出された場合、関数呼び出しは失敗し、ERROR_ACCESS_DENIEDが返されます。 この関数は、Windows Vista 以降のユーザー アカウント制御 (UAC) が原因で失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevel が requireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 アプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしたユーザーは、この関数を成功させるために、組み込みの Administrator (RunAs 管理者) として拡張シェルでアプリケーションを実行する必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー netioapi.h (Iphlpapi.h を含む)
Library Iphlpapi.lib
[DLL] Iphlpapi.dll

こちらもご覧ください

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2