SetUnicastIpAddressEntry 函式
SetUnicastIpAddressEntry函式會在本機電腦上設定現有單播 IP 位址專案的屬性。
語法
NETIOAPI_API SetUnicastIpAddressEntry(
_In_ const MIB_UNICASTIPADDRESS_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 堆疊,且位址成員中指定了 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 成員未設定任何值, (此成員的值設定為零) ,則 Next 會使用 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結構的DadState、ScopeId和CreationTimeStamp成員。 這些成員是由網路堆疊所設定,無法使用 SetUnicastIpAddressEntry 函式來變更。 ScopeId成員會自動由新增位址的介面決定。
規格需求
目標平台 |
普遍 |
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 |
Netioapi.h (包括 Netioapi.h) |
程式庫 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |