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
指定建立列舉時要使用的檢視集。 使用下列旗標。
常數 | 意義 |
---|---|
|
從所有檢視傳回目的地。 這是預設值。 |
|
從單播檢視傳回目的地。 |
|
從多播檢視傳回目的地。 |
[in] EnumFlags
指定要包含在列舉中的目的地。 使用兩組旗標;例如,使用每個集合 (的一個旗標,請使用 RTM_ENUM_ALL_DESTS 和 RTM_ENUM_START) 。
常數 | 意義 |
---|---|
|
傳回所有目的地。 |
|
傳回目的地,用戶端在任何指定的檢視中擁有目的地的最佳路由。 |
常數 | 意義 |
---|---|
|
列舉從指定位址/遮罩長度開始的目的地 (,例如 10/8) 。 列舉會繼續到路由表的結尾。 |
|
列舉位址/遮罩長度所指定範圍中的目的地, (例如 10/8) 。 |
|
列舉從 0/0 開始的目的地。 指定 NetAddress 的 NULL。 |
[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
在輸入時, RtmEnumHandle 是 NULL 的指標。
在輸出時, RtmEnumHandle 會接收列舉句柄的指標。 在所有後續對 RtmGetEnumDests、 RtmReleaseDests 和 RtmDeleteEnumHandle 的後續呼叫中使用此句柄。
傳回值
如果函式成功,傳回值會 NO_ERROR。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
值 | 意義 |
---|---|
|
參數包含不正確的資訊。 |
|
記憶體不足,無法完成此作業。 |
|
不支援一或多個指定的檢視。 |
備註
如果 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 |