CreateAnycastIpAddressEntry 関数
CreateAnycastIpAddressEntry 関数は、ローカル コンピューターに新しいエニーキャスト IP アドレス エントリを追加します。
構文
NETIOAPI_API CreateAnycastIpAddressEntry(
_In_ const MIB_ANYCASTIPADDRESS_ROW *Row
);
パラメーター
- Row [in]
エニーキャスト IP アドレス エントリの MIB_ANYCASTIPADDRESS_ROW 構造体エントリへのポインター。
戻り値
関数が成功した場合、CreateAnycastIpAddressEntry は STATUS_SUCCESS を返します。
関数が失敗した場合、CreateAnycastIpAddressEntry は次のいずれかのエラー コードを返します:
リターン コード | 説明 |
---|---|
STATUS_INVALID_PARAMETER | その関数に無効なパラメーターが渡された。 このエラーは、Row パラメーターに NULL ポインターが渡された場合、Row パラメーターが指す MIB_ANYCASTIPADDRESS_ROW 構造体の Address メンバーに有効なエニーキャスト IPv4 または IPv6 アドレスが設定されていない場合、または、MIB_ANYCASTIPADDRESS_ROW 構造体の InterfaceLuid メンバーと InterfaceIndex メンバーの両方が指定されていない場合に返されます。 |
STATUS_NOT_FOUND | 指定されたインターフェイスが見つかりませんでした。 このエラーは、Row パラメーターが指す MIB_UNICASTIPADDRESS_ROW 構造体の InterfaceLuid メンバーまたは InterfaceIndex メンバーで指定されるネットワーク インターフェイスを関数が見つけられない場合に返されます。 |
STATUS_NOT_SUPPORTED | 要求はサポートされていません。 このエラーは、ローカル コンピューターに IPv4 スタックが存在せず、Row パラメーターが指す MIB_ANYCASTIPADDRESS_ROW 構造体の Address メンバーに IPv4 アドレスが指定されていた場合、またはローカル コンピューターに IPv6 スタックが存在せず、Address メンバーに IPv6 アドレスが指定されていた場合に返されます。 |
ERROR_OBJECT_ALREADY_EXISTS | オブジェクトが既に存在します。 このエラーは、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROW構造体の Address メンバーが、MIB_ANYCASTIPADDRESS_ROW構造体の InterfaceLuid または InterfaceIndex メンバーによって指定されたインターフェイス上の既存のエニーキャスト IP アドレスの複製である場合に返されます。 |
その他 | FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
解説
ドライバーは、Row パラメーターが指す MIB_ANYCASTIPADDRESS_ROW 構造体の次のメンバーを初期化する必要があります。
住所
有効なユニキャスト IPv4 アドレスまたはユニキャスト IPv6 アドレスとファミリを設定します。InterfaceLuid または InterfaceIndex
これらのメンバーは、前に示した順序で使用されます。 したがって、 InterfaceLuid が指定されている場合、このメンバーを使用して、ユニキャスト IP アドレスを追加するインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない (このメンバーの値がゼロに設定されている) 場合は、InterfaceIndex メンバーが次にインターフェイスを決定するために使用されます。
CreateAnycastIpAddressEntry 関数が呼び出されると、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROW構造体の ScopeId メンバーは無視されます。 ScopeId メンバーは、アドレスが追加されたインターフェイスによって自動的に決定されます。
CreateAnycastIpAddressEntry 関数は、Row パラメーターが指すMIB_ANYCASTIPADDRESS_ROW構造体の Address メンバーで渡されるエニーキャスト IP アドレスが、インターフェイス上の既存のエニーキャスト IP アドレスの複製である場合に失敗します。
要件
対象プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー |
Netioapi.h (Netioapi.h を含む) |
ライブラリ |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |