Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
2.7 KiB

  1. /*++
  2. Copyright (c) 1997 - 98, Microsoft Corporation
  3. Module Name:
  4. rtmmgmt.h
  5. Abstract:
  6. Definitions used in performing management
  7. functions on Routing Table Manager v2.
  8. Author:
  9. Chaitanya Kodeboyina (chaitk) 17-Aug-1998
  10. Revision History:
  11. --*/
  12. #ifndef __ROUTING_RTMMGMT_H__
  13. #define __ROUTING_RTMMGMT_H__
  14. #ifdef __cplusplus
  15. extern "C"
  16. {
  17. #endif
  18. //
  19. // Info related to an RTM instance
  20. //
  21. typedef struct RTM_INSTANCE_INFO
  22. {
  23. USHORT RtmInstanceId; // Unique ID for this RTM instance
  24. UINT NumAddressFamilies; // Num. of addr families supported
  25. }
  26. RTM_INSTANCE_INFO, *PRTM_INSTANCE_INFO;
  27. //
  28. // Info related to an address family
  29. // (IPv4..) in a certain RTM instance
  30. //
  31. typedef struct _RTM_ADDRESS_FAMILY_INFO
  32. {
  33. USHORT RtmInstanceId; // Unique ID for the owner RTM instance
  34. USHORT AddressFamily; // Address Family for this info block
  35. RTM_VIEW_SET ViewsSupported; // Views supported by this addr family
  36. UINT MaxHandlesInEnum; // Max. number of handles returned in
  37. // any RTMv2 call that gives handles
  38. UINT MaxNextHopsInRoute;// Max. number of equal cost next-hops
  39. UINT MaxOpaquePtrs; // Number of opaque ptr slots in dest
  40. UINT NumOpaquePtrs; // Num. of opaque ptrs already in use
  41. UINT NumEntities; // Total number of registered entities
  42. UINT NumDests; // Number of dests in route table
  43. UINT NumRoutes; // Number of routes in route table
  44. UINT MaxChangeNotifs; // Max num. of change notify regns
  45. UINT NumChangeNotifs; // Num of registrations active now
  46. }
  47. RTM_ADDRESS_FAMILY_INFO, *PRTM_ADDRESS_FAMILY_INFO;
  48. //
  49. // Funcs used to enumerate instances and address families
  50. //
  51. DWORD
  52. WINAPI
  53. RtmGetInstances (
  54. IN OUT PUINT NumInstances,
  55. OUT PRTM_INSTANCE_INFO InstanceInfos
  56. );
  57. DWORD
  58. WINAPI
  59. RtmGetInstanceInfo (
  60. IN USHORT RtmInstanceId,
  61. OUT PRTM_INSTANCE_INFO InstanceInfo,
  62. IN OUT PUINT NumAddrFamilies,
  63. OUT PRTM_ADDRESS_FAMILY_INFO AddrFamilyInfos OPTIONAL
  64. );
  65. DWORD
  66. WINAPI
  67. RtmGetAddressFamilyInfo (
  68. IN USHORT RtmInstanceId,
  69. IN USHORT AddressFamily,
  70. OUT PRTM_ADDRESS_FAMILY_INFO AddrFamilyInfo,
  71. IN OUT PUINT NumEntities,
  72. OUT PRTM_ENTITY_INFO EntityInfos OPTIONAL
  73. );
  74. #ifdef __cplusplus
  75. }
  76. #endif
  77. #endif //__ROUTING_RTMMGMT_H__