RtmGetLessSpecificDestination 函式 (rtmv2.h)
RtmGetLessSpecificDestination函式會在指定目的地前置詞的情況下,搜尋具有下一個最符合 (最長) 前置詞的目的地路由表。 傳回要求的目的地資訊。
語法
DWORD RtmGetLessSpecificDestination(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_DEST_HANDLE DestHandle,
[in] ULONG ProtocolId,
[in] RTM_VIEW_SET TargetViews,
[out] PRTM_DEST_INFO DestInfo
);
參數
[in] RtmRegHandle
從先前呼叫 RtmRegisterEntity取得的用戶端控制碼。
[in] DestHandle
目的地的控制碼。
[in] ProtocolId
指定通訊協定識別碼。 ProtocolID不是搜尋準則的一部分。 路由表管理員會使用此識別碼來判斷要傳回的路由資訊。 例如,如果用戶端指定 RIP 通訊協定識別碼,即使非 RIP 路由是目的地的最佳路由,也會傳回最佳的 RIP 路由。
指定RTM_BEST_PROTOCOL傳回路由,不論通訊協定擁有哪一個通訊協定。 指定RTM_THIS_PROTOCOL傳回呼叫通訊協定的最佳路由。
[in] TargetViews
指定要從中傳回信息的檢視。 如果用戶端指定RTM_VIEW_MASK_ANY,則會從所有檢視傳回目的地資訊;不過,不會傳回任何檢視特定資訊。
[out] DestInfo
在輸入時, DestInfo 是 RTM_DEST_INFO 結構的指標。
在輸出上, DestInfo 會填入要求的目的地資訊。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
值 | 意義 |
---|---|
|
參數包含不正確的資訊。 |
|
找不到下一個最佳目的地。 |
備註
DestInfo參數是可變大小的RTM_DEST_INFO結構。 如果用戶端使用 TargetViews指定多個檢視,則每個檢視的大小 都會增加 DestInfo 。 使用 RTM_SIZE_OF_DEST_INFO 宏來判斷呼叫此函式之前,要為 DestInfo 結構配置多少記憶體。 使用針對 TargetViews 指定的值做為參數來 RTM_SIZE_OF_DEST_INFO。
RtmGetLessSpecificDestination函式會在呼叫RtmGetMostSpecificDestination之後使用,以傳回目的地的下一個最佳相符專案。 這個呼叫也會在 先前呼叫 RtmGetLessSpecificDestination 之後使用,以傳回下一個後續較不特定的相符專案。 用戶端可以使用此函式來「逐步執行」目的地的前置詞樹狀結構。
呼叫傳回 RTM_DEST_INFO 結構的函式之後,也會使用此呼叫,例如 RtmGetDestInfo 和 RtmGetChangedDests。
RtmGetLessSpecificDestination函式會傳回相符專案,直到到達預設路由為止。 找到預設路由之後, RtmGetLessSpecificDestination 會傳回ERROR_NOT_FOUND。
RtmGetLessSpecificDestination和RtmGetMostSpecificDestination函式的常見用法是擷取每個相符的目的地。
如需使用此函式的範例程式碼,請參閱 使用前置詞樹狀結構搜尋路由。
需求
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rtmv2.h |
程式庫 | Rtm.lib |
Dll | Rtm.dll |