共用方式為


RtmCreateDestEnum 函式 (rtmv2.h)

RtmCreateDestEnum 函式會啟動路由表中目的地的列舉。 用戶端可以列舉一或多個檢視的目的地,或列舉所有檢視的目的地。

語法

DWORD RtmCreateDestEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  NetAddress,
  [in]  ULONG             ProtocolId,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

參數

[in] RtmRegHandle

先前呼叫 RtmRegisterEntity 取得的用戶端句柄。

[in] TargetViews

指定建立列舉時要使用的檢視集。 使用下列旗標。

常數 意義
RTM_VIEW_MASK_ANY
從所有檢視傳回目的地。 這是預設值。
RTM_VIEW_MASK_UCAST
從單播檢視傳回目的地。
RTM_VIEW_MASK_MCAST
從多播檢視傳回目的地。

[in] EnumFlags

指定要包含在列舉中的目的地。 使用兩組旗標;例如,使用每個集合 (的一個旗標,請使用 RTM_ENUM_ALL_DESTS 和 RTM_ENUM_START) 。

常數 意義
RTM_ENUM_ALL_DESTS
傳回所有目的地。
RTM_ENUM_OWN_DESTS
傳回目的地,用戶端在任何指定的檢視中擁有目的地的最佳路由。
 
常數 意義
RTM_ENUM_NEXT
列舉從指定位址/遮罩長度開始的目的地 (,例如 10/8) 。 列舉會繼續到路由表的結尾。
RTM_ENUM_RANGE
列舉位址/遮罩長度所指定範圍中的目的地, (例如 10/8) 。
RTM_ENUM_START
列舉從 0/0 開始的目的地。 指定 NetAddressNULL

[in] NetAddress

包含列舉起始位址 之RTM_NET_ADDRESS 結構的指標。 如果 EnumFlags 包含RTM_ENUM_START,請指定 NULL

[in] ProtocolId

指定用來判斷 RtmGetEnumDests 函式所傳回之最佳路由資訊的通訊協議標識碼。 ProtocolID 不是搜尋準則的一部分。 路由表管理員會使用此標識符來判斷要傳回的路由資訊 (例如,如果用戶端指定 RIP 通訊協定標識符,則會傳回最佳的 RIP 路由,即使非 RIP 路由是目的地) 的最佳路由也一樣。

指定RTM_BEST_PROTOCOL傳迴路由,不論哪個通訊協議擁有路由。 指定RTM_THIS_PROTOCOL,以傳回呼叫通訊協定的最佳路由。

[out] RtmEnumHandle

在輸入時, RtmEnumHandleNULL 的指標。

在輸出時, RtmEnumHandle 會接收列舉句柄的指標。 在所有後續對 RtmGetEnumDestsRtmReleaseDestsRtmDeleteEnumHandle 的後續呼叫中使用此句柄。

傳回值

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

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

意義
ERROR_INVALID_PARAMETER
參數包含不正確的資訊。
ERROR_NOT_ENOUGH_MEMORY
記憶體不足,無法完成此作業。
ERROR_NOT_SUPPORTED
不支援一或多個指定的檢視。

備註

如果 EnumFlags 包含RTM_ENUM_RANGE,請使用 NetAddress 指定要列舉的路由表範圍。 例如,如果用戶端將 NetAddress 設定為 10/8,則會傳回範圍 10.0.0.0/8 到 10.255.255.255/32 的目的地。

當不再需要列舉句柄時,請呼叫 RtmDeleteEnumHandle 來釋放它。

如需使用此函式的範例程式代碼,請參閱 列舉所有目的地

規格需求

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

另請參閱

RTM_NET_ADDRESS

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests