SetIpForwardEntry2 函式 (netioapi.h)
SetIpForwardEntry2 函式會在本機計算機上設定IP路由項目的屬性。
語法
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpForwardEntry2(
[in] const MIB_IPFORWARD_ROW2 *Route
);
參數
[in] Route
IP 路由專案的 MIB_IPFORWARD_ROW2 結構專案的指標。 MIB_IPFORWARD_ROW2的 DestinationPrefix 成員必須設定為有效的 IP 目的地前置詞、MIB_IPFORWARD_ROW2的 NextHop 成員必須設定為有效的 IP 位址系列和 IP 位址,以及必須指定MIB_IPFORWARD_ROW2的 InterfaceLuid 或 InterfaceIndex 成員。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | Description |
---|---|
|
存取遭到拒絕。 此錯誤會在數種狀況下傳回:使用者缺少本機電腦上的必要系統管理許可權,或應用程式未在增強殼層中執行,因為內建系統管理員 (RunAs 系統管理員) 。 |
|
無效的參數已傳遞至 函式。 如果未指定 Route 參數所指向之MIB_IPFORWARD_ROW2的 DestinationPrefix 成員、未指定 Route參數所指向之MIB_IPFORWARD_ROW2的 NextHop 成員,或是 Route 參數所指向 MIB_IPFORWARD_ROW2的InterfaceLuid 或 InterfaceIndex 成員,則會傳回此錯誤參數未指定。 |
|
找不到指定的介面。 如果找不到 Route 參數所指向之MIB_IPFORWARD_ROW2的 InterfaceLuid 或 InterfaceIndex 成員所指定的網路介面,就會傳回此錯誤。 |
|
使用 FormatMessage 取得傳回錯誤的訊息字串。 |
備註
SetIpForwardEntry2 函式是在 Windows Vista 和更新版本上定義。
SetIpForwardEntry2 函式可用來設定本機計算機上現有IP路由項目的屬性。
Route 參數所指向之MIB_IPFORWARD_ROW2結構中的 DestinationPrefix 成員必須初始化為有效的 IP 位址前置詞和系列。 Route 參數所指向之MIB_IPFORWARD_ROW2結構中的 NextHop 成員必須初始化為有效的 IP 位址和系列。 此外,指向 Route 參數的 MIB_IPFORWARD_ROW2 結構中至少有一個下列成員必須初始化為 介面:InterfaceLuid 或 InterfaceIndex。
欄位會依照上面所列的順序使用。 因此,如果指定 InterfaceLuid ,則會使用此成員來判斷要新增單播 IP 位址的介面。 如果未為 InterfaceLuid 成員設定任何值, (此成員的值設定為零) ,則下一步會使用 InterfaceIndex 成員來判斷介面。
Route 參數所指向之MIB_IPFORWARD_ROW2結構之計量成員中指定的路由計量位移只代表完整路由計量的一部分。 完整計量是這個路由計量位移的組合,其新增至相關聯介面之MIB_IPINTERFACE_ROW結構之計量成員中指定的介面計量。 應用程式可以藉由呼叫 GetIpInterfaceEntry 函式來擷取介面計量。
呼叫 SetIpForwardEntry2 函式時,會忽略 Row 所指向之MIB_IPFORWARD_ROW2結構的 Age 和 Origin 成員。 這些成員是由網路堆疊所設定,而且無法使用 SetIpForwardEntry2 函式來變更。
如果 Route 參數所指向之MIB_IPFORWARD_ROW2的 DestinationPrefix 和 NextHop 成員不符合指定的介面上的 IP 路由專案,SetIpForwardEntry2 函式將會失敗。
SetIpForwardEntry2 函式只能由以 Administrators 群組成員身分登入的使用者呼叫。 如果 SetIpForwardEntry2 是由不是 Administrators 群組成員的使用者呼叫,則函式呼叫將會失敗,並 傳回ERROR_ACCESS_DENIED 。
SetIpForwardEntry2 函式也可能失敗,因為用戶帳戶控制 (Windows Vista 和更新版本上的 UAC) 。 如果包含此函式的應用程式是由使用者以系統管理員以外的系統管理員群組成員身分登入來執行,除非應用程式已在指令清單檔中標示為 requestedExecutionLevel 設定為 requireAdministrator,否則此呼叫將會失敗。 如果應用程式缺少此指令清單檔,則身為系統管理員以外的 Administrators 群組成員登入的使用者,就必須在增強殼層中執行應用程式,因為內建系統管理員 (RunAs 系統管理員) ,此函式才能成功。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | netioapi.h (包括 Iphlpapi.h) |
程式庫 | Iphlpapi.lib |
Dll | Iphlpapi.dll |