SetUnicastIpAddressEntry 関数

SetUnicastIpAddressEntry 関数は、ローカル コンピューター上の既存のユニキャスト IP アドレス エントリのプロパティを設定します。

構文

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

パラメーター

  • Row [in]
    既存のユニキャスト IP アドレス エントリの MIB_UNICASTIPADDRESS_ROW 構造体エントリへのポインター。

戻り値

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

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

リターン コード 説明
STATUS_INVALID_PARAMETER

その関数に無効なパラメーターが渡された。 このエラーは、Row パラメーターに NULL ポインターが渡された場合、Row パラメーターが指す MIB_UNICASTIPADDRESS_ROW 構造体の Address メンバーに有効なユニキャスト IPv4 または IPv6 アドレスが設定されなかった場合、または、MIB_UNICASTIPADDRESS_ROW 構造体の InterfaceLuid メンバーと InterfaceIndex メンバーの両方が指定されていない場合に返されます。

STATUS_NOT_FOUND

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

STATUS_NOT_SUPPORTED

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

その他

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

解説

GetUnicastIpAddressEntry 関数は、通常、変更する既存の MIB_UNICASTIPADDRESS_ROW 構造体エントリを取得するために使用されます。 その後、ドライバーは、変更する MIB_UNICASTIPADDRESS_ROW エントリのメンバーを変更してから、SetUnicastIpAddressEntry 関数を呼び出すことができます。

ドライバーは、InitializeUnicastIpAddressEntry 関数を呼び出して、変更を行う前に既定値でMIB_UNICASTIPADDRESS_ROW構造体エントリのメンバーを初期化できます。 ただし、ドライバーは通常、InitializeUnicastIpAddressEntry を呼び出す前に InterfaceLuid または InterfaceIndex メンバーを保存し、呼び出し後にこれらのメンバーのいずれかを復元します。

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

  • 住所
    有効なユニキャスト IPv4 アドレスまたはユニキャスト IPv6 アドレスとファミリを設定します。

  • InterfaceLuid または InterfaceIndex
    これらのメンバーは、前に示した順序で使用されます。 したがって、InterfaceLuid が指定されている場合は、このメンバーを使用してインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない (このメンバーの値がゼロに設定されている) 場合は、InterfaceIndex メンバーが次にインターフェイスを決定するために使用されます。

Row パラメーターが指すMIB_UNICASTIPADDRESS_ROW構造体の OnLinkPrefixLength メンバーが 255 に設定されている場合、SetUnicastIpAddressEntry はユニキャスト IP アドレス プロパティを設定して、OnLinkPrefixLength メンバーが IP アドレスの長さと同じになるようにします。 ユニキャスト IPv4 アドレスの場合、 OnLinkPrefixLength は 32 に設定されます。 ユニキャスト IPv6 アドレスの場合、 OnLinkPrefixLength は 128 に設定されます。 これらの設定により、IPv4 アドレスのサブネット マスクが正しくないか、IPv6 アドレスのリンク プレフィックスが正しくない場合、ドライバーは SetUnicastIpAddressEntry を呼び出す前に、このメンバーを正しい値に設定する必要があります。

SetUnicastIpAddressEntry は、Row パラメーターが指すMIB_UNICASTIPADDRESS_ROW構造体の DadStateScopeIdCreationTimeStamp メンバーを無視します。 これらのメンバーはネットワーク スタックによって設定され、SetUnicastIpAddressEntry 関数を使用して変更することはできません。 ScopeId メンバーは、アドレスが追加されたインターフェイスによって自動的に決定されます。

要件

対象プラットフォーム

ユニバーサル

バージョン

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

ヘッダー

Netioapi.h (Netioapi.h を含む)

ライブラリ

Netio.lib

IRQL

< DISPATCH_LEVEL

関連項目

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange