CreateAnycastIpAddressEntry 関数 (netioapi.h)
CreateAnycastIpAddressEntry 関数は、ローカル コンピューターに新しいエニーキャスト IP アドレス エントリを追加します。
構文
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API CreateAnycastIpAddressEntry(
[in] const MIB_ANYCASTIPADDRESS_ROW *Row
);
パラメーター
[in] Row
エニーキャスト IP アドレス エントリの MIB_ANYCASTIPADDRESS_ROW 構造体エントリへのポインター。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
アクセスが拒否されました。 このエラーは、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。 |
|
無効なパラメーターが関数に渡されました。 このエラーは、Row パラメーターに NULL ポインターが渡された場合、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの Address メンバーが有効なユニキャスト IPv4 アドレスまたは IPv6 アドレスに設定されていない場合、または Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの InterfaceLuid メンバーまたは InterfaceIndex メンバーの両方が指定されていない場合に返されます。 |
|
指定したインターフェイスが見つかりませんでした。 Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの InterfaceLuid メンバーまたは InterfaceIndex メンバーによって指定されたネットワーク インターフェイスが見つからなかった場合、このエラーが返されます。 |
|
要求はサポートされていません。 このエラーは、ローカル コンピューター上に IPv4 スタックがなく、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの Address メンバーに IPv4 アドレスが指定されている場合に返されます。 このエラーは、ローカル コンピューター上に IPv6 スタックがなく、 アドレス メンバーで IPv6 アドレスが指定されている場合にも返されます。 |
|
オブジェクトが既に存在します。 Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの Address メンバーが、MIB_ANYCASTIPADDRESS_ROWの InterfaceLuid または InterfaceIndex メンバーによって指定されたインターフェイス上の既存のエニーキャスト IP アドレスの複製である場合、このエラーが返されます。 |
|
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。 |
注釈
CreateAnycastIpAddressEntry 関数は、Windows Vista 以降で定義されています。
CreateAnycastIpAddressEntry 関数は、ローカル コンピューターに新しいエニーキャスト IP アドレス エントリを追加するために使用されます。
Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROW構造体の Address メンバーは、有効なユニキャスト IPv4 または IPv6 アドレスとファミリに初期化する必要があります。 さらに、Row パラメーターを指すMIB_ANYCASTIPADDRESS_ROW構造体の少なくとも 1 つのメンバーをインターフェイスに初期化する必要があります。 InterfaceLuid または InterfaceIndex。
フィールドは、上記の順序で使用されます。 したがって、 InterfaceLuid が指定されている場合、このメンバーを使用して、ユニキャスト IP アドレスを追加するインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない場合 (このメンバーの値が 0 に設定されました)、InterfaceIndex メンバーが次に使用されてインターフェイスが決定されます。
CreateAnycastIpAddressEntry 関数が呼び出されると、Row が指すMIB_ANYCASTIPADDRESS_ROW構造体の ScopeId メンバーは無視されます。 ScopeId メンバーは、アドレスが追加されるインターフェイスによって自動的に決定されます。
CreateAnycastIpAddressEntry 関数は、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROWの Address メンバーに渡されたエニーキャスト IP アドレスが、インターフェイス上の既存のエニーキャスト IP アドレスの複製である場合に失敗します。
CreateAnycastIpAddressEntry 関数は、Administrators グループのメンバーとしてログオンしているユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが CreateAnycastIpAddressEntry を呼び出すと、関数呼び出しは失敗し、 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 |