CreateIpForwardEntry2 函式
CreateIpForwardEntry2函式會在本機電腦上建立新的 IP 路由專案。
語法
NETIOAPI_API CreateIpForwardEntry2(
_In_ const MIB_IPFORWARD_ROW2 *Row
);
參數
- 資料列 [in]
IP 路由專案的 MIB_IPFORWARD_ROW2 結構專案的指標。
傳回值
如果函式成功,CreateIpForwardEntry2會傳回STATUS_SUCCESS。
如果函式失敗, CreateIpForwardEntry2 會傳回下列其中一個錯誤碼:
傳回碼 | 描述 |
---|---|
STATUS_INVALID_PARAMETER | 不正確參數已傳遞至 函式。 如果發生下列其中一種情況,就會傳回此錯誤:
如果未指定Row參數所指向之MIB_IPFORWARD_ROW2結構的DestinationPrefix成員、未指定MIB_IPFORWARD_ROW2結構的NextHop成員,或未指定 MIB_IPFORWARD_ROW2 結構的InterfaceLuid和InterfaceIndex成員,則會傳回此錯誤。 如果MIB_IPFORWARD_ROW2結構中指定的PreferredLifetime 成員大於 ValidLifetime成員,或如果 MIB_IPFORWARD_ROW2 結構中的SitePrefixLength 大於 DestinationPrefix成員中指定的前置長度,也會傳回此錯誤。 |
STATUS_NOT_FOUND | 找不到指定的介面。 如果函式找不到Row參數所指向之 MIB_IPNET_ROW2 結構之InterfaceLuid或InterfaceIndex成員所指定的網路介面,就會傳回此錯誤。 |
STATUS_NOT_SUPPORTED | 不支援此要求。 如果指定的介面不支援路由,就會傳回此錯誤。 如果本機電腦上沒有 IPv4 堆疊,而且AF_INET是在Row參數所指向之 MIB_IPFORWARD_ROW2 結構的DestinationPrefix成員的位址系列中指定,或如果沒有 IPv6 堆疊位於本機電腦上,且已為DestinationPrefix成員中的位址系列指定AF_INET6,則會傳回此錯誤。 |
ERROR_OBJECT_ALREADY_EXISTS | 物件已存在。 如果Row參數指向之MIB_IPFORWARD_ROW2結構的DestinationPrefix成員是介面上由 MIB_IPFORWARD_ROW2 結構的InterfaceLuid或InterfaceIndex成員所指定的現有 IP 路由專案複本,就會傳回此錯誤。 |
其他 | 使用 FormatMessage 函式來取得傳回錯誤的訊息字串。 |
備註
CreateIpForwardEntry2函式可用來在本機電腦上新增鄰近 IP 位址專案。 使用 InitializeIpForwardEntry 函式,以預設值初始化 MIB_IPFORWARD_ROW2 結構專案的成員。 驅動程式接著可以變更MIB_IPFORWARD_ROW2專案中想要修改的成員,然後呼叫 CreateIpForwardEntry2。
驅動程式必須初始化 Row 參數指向的下列MIB_IPFORWARD_ROW2結構成員:
將 DestinationPrefix 設定為有效的 IPv4 或 IPv6 位址首碼。
將 NextHop 設定為有效的 IPv4 或 IPv6 位址和系列。
將 InterfaceLuid 或 InterfaceIndex 設定為介面的 LUID 或索引值。
InterfaceLuid和InterfaceIndex成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid ,則會使用此成員來判斷要新增 IP 路由專案的介面。 如果未為 InterfaceLuid 成員設定任何值, (這個成員的值設定為零) ,則接著會使用 InterfaceIndex 成員來判斷介面。
MIB_IPFORWARD_ROW2 結構的 Metric 成員中指定的路由計量位移, Row 參數指向的路由計量位移只代表完整路由計量的一部分。 完整計量是這個路由計量位移的組合,新增至介面計量,該計量是在相關聯介面之MIB_IPINTERFACE_ROW結構的Metric成員中指定的。 驅動程式可以藉由呼叫 GetIpInterfaceEntry 函式來擷取介面計量。
呼叫CreateIpForwardEntry2函式時,會忽略Row參數所指向之MIB_IPFORWARD_ROW2結構的Age和Origin成員。 這些成員是由網路堆疊所設定,而且無法使用 CreateIpForwardEntry2 函式來設定。
如果Row參數指向之 MIB_IPFORWARD_ROW2 結構的DestinationPrefix和NextHop成員是InterfaceLuid或InterfaceIndex成員中指定的介面上現有 IP 路由專案的重複專案,CreateIpForwardEntry2函式就會失敗。
規格需求
目標平台 |
普遍 |
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 |
Netioapi.h (包含 Netioapi.h) |
程式庫 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |