Share via


RtmAddNextHop 函式 (rtmv2.h)

RtmAddNextHop函式會新增下一個躍點專案,或將現有的下一個躍點專案更新至用戶端的下一個躍點清單。 如果下一個躍點已經存在,路由表管理員會將控制碼傳回下一個躍點。 接著,這個控制碼可用來在新增或更新路由時指定目的地的下一個躍點。

語法

DWORD RtmAddNextHop(
  [in]      RTM_ENTITY_HANDLE         RtmRegHandle,
  [in]      PRTM_NEXTHOP_INFO         NextHopInfo,
  [in, out] PRTM_NEXTHOP_HANDLE       NextHopHandle,
  [out]     PRTM_NEXTHOP_CHANGE_FLAGS ChangeFlags
);

參數

[in] RtmRegHandle

從先前呼叫 RtmRegisterEntity取得的用戶端控制碼。

[in] NextHopInfo

結構的指標,其中包含識別要新增或更新之下一個躍點的資訊。 會忽略 NextHopOwnerState成員;這些成員是由路由表管理員所設定。 Flags成員可以是下列其中一個值。

旗標 意義
RTM_NEXTHOP_FLAGS_REMOTE
下一個躍點指向無法直接連線的遠端目的地。 若要取得完整路徑,用戶端必須執行遞迴查閱。
RTM_NEXTHOP_FLAGS_DOWN
此旗標保留供日後使用。

[in, out] NextHopHandle

如果用戶端有控制碼 (用戶端正在更新下一個躍點) :輸入時, NextHopHandle 是下一個躍點控制碼的指標。 在輸出上, NextHopHandle 不會變更。

如果用戶端沒有控制碼且必須傳回控制碼, (用戶端正在新增或更新下一個躍點) :在輸入時, NextHopHandleNull的指標。 在輸出時, NextHopHandle 會收到下一個躍點控制碼的指標。 NextHopInfo中的值可用來識別要更新的下一個躍點。

如果不需要傳回控制碼, (用戶端正在新增或更新下一個躍點) :輸入時, NextHopHandleNullNextHopInfo中的值可用來識別要更新的下一個躍點。

[out] ChangeFlags

在輸入時, ChangeFlagsRTM_NEXTHOP_CHANGE_FLAGS 資料類型的指標。

在輸出時, ChangeFlags 會收到旗標,指出是否已新增或更新下一個躍點。 如果 ChangeFlags 為零,則會更新下一個躍點;如果 ChangeFlags是RTM_NEXTHOP_CHANGE_NEW,則會新增下一個躍點。

傳回值

如果函式成功,傳回值會NO_ERROR。

如果函式失敗,傳回值就是下列其中一個錯誤碼。

意義
ERROR_ACCESS_DENIED
呼叫用戶端沒有擁有這個下一個躍點。
ERROR_NOT_ENOUGH_MEMORY
記憶體不足,無法完成這項作業。
 
 

備註

如果 NextHopHandle 指向非Null 控制碼,則會更新控制碼所指定的下一個躍點。 否則,會搜尋 NextHopInfo所指定的位址。 如果找到下一個躍點,則會更新它。 如果找不到相符專案,則會新增新的下一個躍點。

如果傳回控制碼,則呼叫 RtmReleaseNextHops不再需要控制碼時釋出控制碼。

需求

   
最低支援的用戶端 都不支援
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 rtmv2.h
程式庫 Rtm.lib
Dll Rtm.dll

另請參閱

下一個躍點旗標

RTM_NEXTHOP_INFO

RtmDeleteNextHop

RtmFindNextHop

RtmGetNextHopPointer

RtmLockNextHop

RtmReleaseNextHops