共用方式為


CreateIpForwardEntry2 函式

CreateIpForwardEntry2函式會在本機電腦上建立新的 IP 路由專案。

語法

NETIOAPI_API CreateIpForwardEntry2(
  _In_ const MIB_IPFORWARD_ROW2 *Row
);

參數

傳回值

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

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

傳回碼 描述
STATUS_INVALID_PARAMETER

不正確參數已傳遞至 函式。 如果發生下列其中一種情況,就會傳回此錯誤:

  • Null指標會在Row參數中傳遞。

  • 未指定Row參數所指向之MIB_IPFORWARD_ROW2結構的DestinationPrefix成員。

  • 未指定MIB_IPFORWARD_ROW2結構的 NextHop 成員。

  • 未指定 MIB_IPFORWARD_ROW2 結構的 InterfaceLuidInterfaceIndex 成員。

  • MIB_IPFORWARD_ROW2 結構的 PreferredLifetime 成員大於 ValidLifetime 成員。

  • MIB_IPFORWARD_ROW2 結構的 SitePrefixLength 成員大於 DestinationPrefix 成員所指定的前置長度。

如果未指定Row參數所指向之MIB_IPFORWARD_ROW2結構的DestinationPrefix成員、未指定MIB_IPFORWARD_ROW2結構的NextHop成員,或未指定 MIB_IPFORWARD_ROW2 結構的InterfaceLuidInterfaceIndex成員,則會傳回此錯誤。 如果MIB_IPFORWARD_ROW2結構中指定的PreferredLifetime 成員大於 ValidLifetime成員,或如果 MIB_IPFORWARD_ROW2 結構中的SitePrefixLength 大於 DestinationPrefix成員中指定的前置長度,也會傳回此錯誤。

STATUS_NOT_FOUND

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

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 結構的InterfaceLuidInterfaceIndex成員所指定的現有 IP 路由專案複本,就會傳回此錯誤。

其他

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

備註

CreateIpForwardEntry2函式可用來在本機電腦上新增鄰近 IP 位址專案。 使用 InitializeIpForwardEntry 函式,以預設值初始化 MIB_IPFORWARD_ROW2 結構專案的成員。 驅動程式接著可以變更MIB_IPFORWARD_ROW2專案中想要修改的成員,然後呼叫 CreateIpForwardEntry2

驅動程式必須初始化 Row 參數指向的下列MIB_IPFORWARD_ROW2結構成員:

  • DestinationPrefix 設定為有效的 IPv4 或 IPv6 位址首碼。

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

  • InterfaceLuidInterfaceIndex 設定為介面的 LUID 或索引值。

InterfaceLuidInterfaceIndex成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid ,則會使用此成員來判斷要新增 IP 路由專案的介面。 如果未為 InterfaceLuid 成員設定任何值, (這個成員的值設定為零) ,則接著會使用 InterfaceIndex 成員來判斷介面。

MIB_IPFORWARD_ROW2 結構的 Metric 成員中指定的路由計量位移, Row 參數指向的路由計量位移只代表完整路由計量的一部分。 完整計量是這個路由計量位移的組合,新增至介面計量,該計量是在相關聯介面之MIB_IPINTERFACE_ROW結構的Metric成員中指定的。 驅動程式可以藉由呼叫 GetIpInterfaceEntry 函式來擷取介面計量。

呼叫CreateIpForwardEntry2函式時,會忽略Row參數所指向之MIB_IPFORWARD_ROW2結構的AgeOrigin成員。 這些成員是由網路堆疊所設定,而且無法使用 CreateIpForwardEntry2 函式來設定。

如果Row參數指向之 MIB_IPFORWARD_ROW2 結構的DestinationPrefixNextHop成員是InterfaceLuidInterfaceIndex成員中指定的介面上現有 IP 路由專案的重複專案,CreateIpForwardEntry2函式就會失敗。

規格需求

目標平台

普遍

版本

可在 Windows Vista 和更新版本的 Windows 作業系統中使用。

標頭

Netioapi.h (包含 Netioapi.h)

程式庫

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2