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.

189 lines
4.9 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. routing\ip\rtrmgr\exdeclar.h
  5. Abstract:
  6. This file contains the data definitions used by IP Router Manager
  7. Revision History:
  8. Amritansh Raghav 7/8/95 Created
  9. --*/
  10. #ifndef __EXDECLAR_H__
  11. #define __EXDECLAR_H__
  12. //
  13. // This table holds the timeout values for all the caches. Currently they are
  14. // #defined
  15. //
  16. DWORD g_TimeoutTable[NUM_CACHE] = {
  17. IPADDRCACHE_TIMEOUT,
  18. IPFORWARDCACHE_TIMEOUT,
  19. IPNETCACHE_TIMEOUT,
  20. TCPCACHE_TIMEOUT,
  21. UDPCACHE_TIMEOUT,
  22. };
  23. //
  24. // This table holds pointers to functions that load each of the caches
  25. //
  26. DWORD (*g_LoadFunctionTable[NUM_CACHE])() = {
  27. LoadIpAddrTable,
  28. LoadIpForwardTable,
  29. LoadIpNetTable,
  30. LoadTcpTable,
  31. LoadUdpTable,
  32. };
  33. //
  34. // This table holds the time when each of the cache's were last updated
  35. //
  36. DWORD g_LastUpdateTable[NUM_CACHE];
  37. //
  38. // This is a table of locks around each of the caches and it also hold the
  39. // ICB_LIST and the PROTOCOL_CB_LIST locks
  40. //
  41. RTL_RESOURCE g_LockTable[NUM_LOCKS];
  42. //
  43. // This table holds the functions that are used to access the MIB variables
  44. // made visible by IP Router Manager
  45. //
  46. DWORD
  47. (*g_AccessFunctionTable[NUMBER_OF_EXPORTED_VARIABLES])(
  48. DWORD dwQueryType,
  49. DWORD dwInEntrySize,
  50. PMIB_OPAQUE_QUERY pInEntry,
  51. PDWORD pOutEntrySize,
  52. PMIB_OPAQUE_INFO pOutEntry,
  53. PBOOL pbCache
  54. ) = {
  55. AccessIfNumber,
  56. AccessIfTable,
  57. AccessIfRow,
  58. AccessIpStats,
  59. AccessIpAddrTable,
  60. AccessIpAddrRow,
  61. AccessIpForwardNumber,
  62. AccessIpForwardTable,
  63. AccessIpForwardRow,
  64. AccessIpNetTable,
  65. AccessIpNetRow,
  66. AccessIcmpStats,
  67. AccessTcpStats,
  68. AccessTcpTable,
  69. AccessTcpRow,
  70. AccessUdpStats,
  71. AccessUdpTable,
  72. AccessUdpRow,
  73. AccessMcastMfe,
  74. AccessMcastMfeStats,
  75. AccessBestIf,
  76. AccessBestRoute,
  77. AccessProxyArp,
  78. AccessMcastIfStats,
  79. AccessMcastStats,
  80. AccessIfStatus,
  81. AccessMcastBoundary,
  82. AccessMcastScope,
  83. AccessDestMatching,
  84. AccessDestLonger,
  85. AccessDestShorter,
  86. AccessRouteMatching,
  87. AccessRouteLonger,
  88. AccessRouteShorter,
  89. AccessSetRouteState,
  90. AccessMcastMfeStatsEx
  91. };
  92. #ifdef DEADLOCK_DEBUG
  93. PBYTE g_pszLockNames[NUM_LOCKS] = {"IP Address Lock",
  94. "IP Forward Lock",
  95. "IP Net Lock",
  96. "TCP Lock",
  97. "UDP Lock",
  98. "ICB List Lock",
  99. "ProtocolCB List Lock",
  100. "Binding List Lock",
  101. "Boundary Table Lock",
  102. "MZAP Timer Lock",
  103. "ZBR List Lock",
  104. "ZLE List Lock",
  105. "ZAM Cache Lock"
  106. };
  107. #endif // DEADLOCK_DEBUG
  108. //
  109. // The following is the time the Router Manager started
  110. //
  111. DWORD g_dwStartTime;
  112. HANDLE g_hIpDevice;
  113. HANDLE g_hMcastDevice;
  114. HANDLE g_hIpRouteChangeDevice;
  115. //
  116. // These various caches
  117. //
  118. IP_CACHE g_IpInfo;
  119. TCP_CACHE g_TcpInfo;
  120. UDP_CACHE g_UdpInfo;
  121. //
  122. // Each of the groups have a private heap
  123. //
  124. HANDLE g_hIfHeap;
  125. HANDLE g_hIpAddrHeap;
  126. HANDLE g_hIpForwardHeap;
  127. HANDLE g_hIpNetHeap;
  128. HANDLE g_hTcpHeap;
  129. HANDLE g_hUdpHeap;
  130. PICB g_pInternalInterfaceCb;
  131. PICB g_pLoopbackInterfaceCb;
  132. DWORD g_dwNextICBSeqNumberCounter;
  133. ULONG g_ulNumBindings;
  134. ULONG g_ulNumInterfaces;
  135. ULONG g_ulNumNonClientInterfaces;
  136. LIST_ENTRY g_leStackRoutesToRestore;
  137. SUPPORT_FUNCTIONS g_sfnDimFunctions;
  138. PICMP_ROUTER_ADVT_MSG g_pIcmpAdvt;
  139. SOCKADDR_IN g_sinAllSystemsAddr;
  140. WSABUF g_wsabufICMPAdvtBuffer;
  141. WSABUF g_wsaIpRcvBuf;
  142. BOOL g_bUninitServer;
  143. MCAST_OVERLAPPED g_rginMcastMsg[NUM_MCAST_IRPS];
  144. IPNotifyData g_IpNotifyData;
  145. ROUTE_CHANGE_INFO g_rgIpRouteNotifyOutput[NUM_ROUTE_CHANGE_IRPS];
  146. #endif