📄 rtmv2.h
字号:
//
// RIB Insert/Delete API Prototypes
//
DWORD
WINAPI
RtmAddRouteToDest (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN OUT PRTM_ROUTE_HANDLE RouteHandle OPTIONAL,
IN PRTM_NET_ADDRESS DestAddress,
IN PRTM_ROUTE_INFO RouteInfo,
IN ULONG TimeToLive,
IN RTM_ROUTE_LIST_HANDLE RouteListHandle OPTIONAL,
IN RTM_NOTIFY_FLAGS NotifyType,
IN RTM_NOTIFY_HANDLE NotifyHandle OPTIONAL,
IN OUT PRTM_ROUTE_CHANGE_FLAGS ChangeFlags
);
DWORD
WINAPI
RtmDeleteRouteToDest (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_HANDLE RouteHandle,
OUT PRTM_ROUTE_CHANGE_FLAGS ChangeFlags
);
DWORD
WINAPI
RtmHoldDestination (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_DEST_HANDLE DestHandle,
IN RTM_VIEW_SET TargetViews,
IN ULONG HoldTime
);
DWORD
WINAPI
RtmGetRoutePointer (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_HANDLE RouteHandle,
OUT PRTM_ROUTE_INFO *RoutePointer
);
DWORD
WINAPI
RtmLockRoute(
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_HANDLE RouteHandle,
IN BOOL Exclusive,
IN BOOL LockRoute,
OUT PRTM_ROUTE_INFO *RoutePointer OPTIONAL
);
DWORD
WINAPI
RtmUpdateAndUnlockRoute(
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_HANDLE RouteHandle,
IN ULONG TimeToLive,
IN RTM_ROUTE_LIST_HANDLE RouteListHandle OPTIONAL,
IN RTM_NOTIFY_FLAGS NotifyType,
IN RTM_NOTIFY_HANDLE NotifyHandle OPTIONAL,
OUT PRTM_ROUTE_CHANGE_FLAGS ChangeFlags
);
//
// RIB Query API Prototypes
//
DWORD
WINAPI
RtmGetExactMatchDestination (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN PRTM_NET_ADDRESS DestAddress,
IN ULONG ProtocolId,
IN RTM_VIEW_SET TargetViews,
OUT PRTM_DEST_INFO DestInfo
);
DWORD
WINAPI
RtmGetMostSpecificDestination (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN PRTM_NET_ADDRESS DestAddress,
IN ULONG ProtocolId,
IN RTM_VIEW_SET TargetViews,
OUT PRTM_DEST_INFO DestInfo
);
DWORD
WINAPI
RtmGetLessSpecificDestination (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_DEST_HANDLE DestHandle,
IN ULONG ProtocolId,
IN RTM_VIEW_SET TargetViews,
OUT PRTM_DEST_INFO DestInfo
);
DWORD
WINAPI
RtmGetExactMatchRoute (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN PRTM_NET_ADDRESS DestAddress,
IN RTM_MATCH_FLAGS MatchingFlags,
IN OUT PRTM_ROUTE_INFO RouteInfo,
IN ULONG InterfaceIndex,
IN RTM_VIEW_SET TargetViews,
OUT PRTM_ROUTE_HANDLE RouteHandle
);
DWORD
WINAPI
RtmIsBestRoute (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_HANDLE RouteHandle,
OUT PRTM_VIEW_SET BestInViews
);
//
// NextHop Object API Prototypes
//
DWORD
WINAPI
RtmAddNextHop (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN PRTM_NEXTHOP_INFO NextHopInfo,
IN OUT PRTM_NEXTHOP_HANDLE NextHopHandle OPTIONAL,
OUT PRTM_NEXTHOP_CHANGE_FLAGS ChangeFlags
);
DWORD
WINAPI
RtmFindNextHop (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN PRTM_NEXTHOP_INFO NextHopInfo,
OUT PRTM_NEXTHOP_HANDLE NextHopHandle,
OUT PRTM_NEXTHOP_INFO *NextHopPointer OPTIONAL
);
DWORD
WINAPI
RtmDeleteNextHop (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NEXTHOP_HANDLE NextHopHandle OPTIONAL,
IN PRTM_NEXTHOP_INFO NextHopInfo
);
DWORD
WINAPI
RtmGetNextHopPointer (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NEXTHOP_HANDLE NextHopHandle,
OUT PRTM_NEXTHOP_INFO *NextHopPointer
);
DWORD
WINAPI
RtmLockNextHop(
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NEXTHOP_HANDLE NextHopHandle,
IN BOOL Exclusive,
IN BOOL LockNextHop,
OUT PRTM_NEXTHOP_INFO *NextHopPointer OPTIONAL
);
//
// Enumeration API Prototypes
//
DWORD
WINAPI
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
);
DWORD
WINAPI
RtmGetEnumDests (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_HANDLE EnumHandle,
IN OUT PUINT NumDests,
OUT PRTM_DEST_INFO DestInfos
);
DWORD
WINAPI
RtmReleaseDests (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN UINT NumDests,
IN PRTM_DEST_INFO DestInfos
);
DWORD
WINAPI
RtmCreateRouteEnum (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_DEST_HANDLE DestHandle OPTIONAL,
IN RTM_VIEW_SET TargetViews,
IN RTM_ENUM_FLAGS EnumFlags,
IN PRTM_NET_ADDRESS StartDest OPTIONAL,
IN RTM_MATCH_FLAGS MatchingFlags,
IN PRTM_ROUTE_INFO CriteriaRoute OPTIONAL,
IN ULONG CriteriaInterface OPTIONAL,
OUT PRTM_ENUM_HANDLE RtmEnumHandle
);
DWORD
WINAPI
RtmGetEnumRoutes (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_HANDLE EnumHandle,
IN OUT PUINT NumRoutes,
OUT PRTM_ROUTE_HANDLE RouteHandles
);
DWORD
WINAPI
RtmReleaseRoutes (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN UINT NumRoutes,
IN PRTM_ROUTE_HANDLE RouteHandles
);
DWORD
WINAPI
RtmCreateNextHopEnum (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_FLAGS EnumFlags,
IN PRTM_NET_ADDRESS NetAddress,
OUT PRTM_ENUM_HANDLE RtmEnumHandle
);
DWORD
WINAPI
RtmGetEnumNextHops (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_HANDLE EnumHandle,
IN OUT PUINT NumNextHops,
OUT PRTM_NEXTHOP_HANDLE NextHopHandles
);
DWORD
WINAPI
RtmReleaseNextHops (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN UINT NumNextHops,
IN PRTM_NEXTHOP_HANDLE NextHopHandles
);
DWORD
WINAPI
RtmDeleteEnumHandle (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_HANDLE EnumHandle
);
//
// Change Notification APIs
//
DWORD
WINAPI
RtmRegisterForChangeNotification (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_VIEW_SET TargetViews,
IN RTM_NOTIFY_FLAGS NotifyFlags,
IN PVOID NotifyContext,
OUT PRTM_NOTIFY_HANDLE NotifyHandle
);
DWORD
WINAPI
RtmGetChangedDests (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN OUT PUINT NumDests,
OUT PRTM_DEST_INFO ChangedDests
);
DWORD
WINAPI
RtmReleaseChangedDests (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN UINT NumDests,
IN PRTM_DEST_INFO ChangedDests
);
DWORD
WINAPI
RtmIgnoreChangedDests (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN UINT NumDests,
IN PRTM_DEST_HANDLE ChangedDests
);
DWORD
WINAPI
RtmGetChangeStatus (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN RTM_DEST_HANDLE DestHandle,
OUT PBOOL ChangeStatus
);
DWORD
WINAPI
RtmMarkDestForChangeNotification (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN RTM_DEST_HANDLE DestHandle,
IN BOOL MarkDest
);
DWORD
WINAPI
RtmIsMarkedForChangeNotification (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle,
IN RTM_DEST_HANDLE DestHandle,
OUT PBOOL DestMarked
);
DWORD
WINAPI
RtmDeregisterFromChangeNotification (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_NOTIFY_HANDLE NotifyHandle
);
//
// Entity Specific List APIs
//
DWORD
WINAPI
RtmCreateRouteList (
IN RTM_ENTITY_HANDLE RtmRegHandle,
OUT PRTM_ROUTE_LIST_HANDLE RouteListHandle
);
DWORD
WINAPI
RtmInsertInRouteList (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_LIST_HANDLE RouteListHandle OPTIONAL,
IN UINT NumRoutes,
IN PRTM_ROUTE_HANDLE RouteHandles
);
DWORD
WINAPI
RtmCreateRouteListEnum (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_LIST_HANDLE RouteListHandle,
OUT PRTM_ENUM_HANDLE RtmEnumHandle
);
DWORD
WINAPI
RtmGetListEnumRoutes (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ENUM_HANDLE EnumHandle,
IN OUT PUINT NumRoutes,
OUT PRTM_ROUTE_HANDLE RouteHandles
);
DWORD
WINAPI
RtmDeleteRouteList (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN RTM_ROUTE_LIST_HANDLE RouteListHandle
);
//
// Handle Management APIs
//
DWORD
WINAPI
RtmReferenceHandles (
IN RTM_ENTITY_HANDLE RtmRegHandle,
IN UINT NumHandles,
IN HANDLE *RtmHandles
);
#ifdef __cplusplus
}
#endif
#pragma option pop /*P_O_Pop*/
#endif //__ROUTING_RTMv2_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -