共用方式為


SetUnicastIpAddressEntry 函式

SetUnicastIpAddressEntry 函式會設定本機電腦上現有單播 IP 位址項目的屬性。

語法

NETIOAPI_API SetUnicastIpAddressEntry(
  _In_ const MIB_UNICASTIPADDRESS_ROW *Row
);

參數

傳回值

如果函式成功,SetUnicastIpAddressEntry 會傳回STATUS_SUCCESS。

如果函式失敗,SetUnicastIpAddressEntry 會傳回下列其中一個錯誤碼:

傳回碼 描述
STATUS_INVALID_PARAMETER

無效的參數已傳遞至函式。 如果在 Row 參數中傳遞 NULL 指標,則會傳回此錯誤。 Row 參數所指向之 MIB_UNICASTIPADDRESS_ROW 結構的 Address 成員未設定為有效的單播 IPv4 或 IPv6 位址,或未指定 InterfaceLuidInterfaceIndex MIB_UNICASTIPADDRESS_ROW 成員。

STATUS_NOT_FOUND

找不到指定的介面。 如果函式找不到由 InterfaceLuidInterfaceIndex 所指定的網路介面,則會傳回此錯誤 MIB_UNICASTIPADDRESS_ROW 結構的成員,Row 參數所指向。

STATUS_NOT_SUPPORTED

不支援要求。 如果本機計算機上沒有IPv4堆棧,且在MIB_UNICASTIPADDRESS_ROW結構MIB_UNICASTIPADDRESS_ROW 結構 成員中 指定了 IPv4 位址,則會傳回此錯誤,或者如果本機計算機上沒有 IPv6 堆棧,且 位址 成員中指定了 IPv6 位址。

其他

使用 FormatMessage 函式取得傳回錯誤的訊息字串。

言論

GetUnicastIpAddressEntry 函式通常用於擷取要修改的現有 MIB_UNICASTIPADDRESS_ROW 結構專案。 然後,驅動程式可以變更其想要修改之MIB_UNICASTIPADDRESS_ROW專案中的成員,然後呼叫 setUnicastIpAddressEntry 函式

驅動程式可以呼叫 InitializeUnicastIpAddressEntry 函式,在進行變更之前,先使用預設值初始化MIB_UNICASTIPADDRESS_ROW結構項目的成員。 不過,驅動程式通常會先儲存 InterfaceLuidInterfaceIndex 成員,再呼叫 InitializeUnicastIpAddressEntry,並在呼叫後還原其中一個成員。

您的驅動程序必須初始化 Row 參數所指向之MIB_UNICASTIPADDRESS_ROW結構的下列成員。

  • 位址
    設定為有效的單播 IPv4 或 IPv6 位址和系列。

  • InterfaceLuidInterfaceIndex
    這些成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid,則會使用此成員來判斷介面。 如果未為 InterfaceLuid 成員設定任何值(此成員的值設定為零),則 InterfaceIndex 成員會接著用來判斷介面。

如果 OnLinkPrefixLength MIB_UNICASTIPADDRESS_ROW 結構的成員 Row 參數所指向的 設定為 255,SetUnicastIpAddressEntry 設定單播 IP 位址屬性,讓 OnLinkPrefixLength 成員等於 IP 位址的長度。 針對單播 IPv4 位址,OnLinkPrefixLength 設為 32。 若為單播 IPv6 位址,OnLinkPrefixLength 會設定為 128。 如果這些設定會導致 IPv4 位址的子網遮罩不正確或 IPv6 位址的連結前置詞不正確,驅動程式應該先將此成員設定為正確的值,再呼叫 setUnicastIpAddressEntry

SetUnicastIpAddressEntry 會忽略 DadStateScopeId,以及 CreationTimeStampRow 參數所指向之MIB_UNICASTIPADDRESS_ROW結構的成員。 這些成員是由網路堆疊設定,無法使用 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