190 lines
4.9 KiB
C
190 lines
4.9 KiB
C
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
routing\ip\rtrmgr\exdeclar.h
|
|
|
|
Abstract:
|
|
|
|
This file contains the data definitions used by IP Router Manager
|
|
|
|
|
|
Revision History:
|
|
|
|
Amritansh Raghav 7/8/95 Created
|
|
|
|
--*/
|
|
|
|
#ifndef __EXDECLAR_H__
|
|
#define __EXDECLAR_H__
|
|
|
|
//
|
|
// This table holds the timeout values for all the caches. Currently they are
|
|
// #defined
|
|
//
|
|
|
|
DWORD g_TimeoutTable[NUM_CACHE] = {
|
|
IPADDRCACHE_TIMEOUT,
|
|
IPFORWARDCACHE_TIMEOUT,
|
|
IPNETCACHE_TIMEOUT,
|
|
TCPCACHE_TIMEOUT,
|
|
UDPCACHE_TIMEOUT,
|
|
};
|
|
|
|
//
|
|
// This table holds pointers to functions that load each of the caches
|
|
//
|
|
|
|
DWORD (*g_LoadFunctionTable[NUM_CACHE])() = {
|
|
LoadIpAddrTable,
|
|
LoadIpForwardTable,
|
|
LoadIpNetTable,
|
|
LoadTcpTable,
|
|
LoadUdpTable,
|
|
};
|
|
|
|
//
|
|
// This table holds the time when each of the cache's were last updated
|
|
//
|
|
|
|
DWORD g_LastUpdateTable[NUM_CACHE];
|
|
|
|
//
|
|
// This is a table of locks around each of the caches and it also hold the
|
|
// ICB_LIST and the PROTOCOL_CB_LIST locks
|
|
//
|
|
|
|
RTL_RESOURCE g_LockTable[NUM_LOCKS];
|
|
|
|
//
|
|
// This table holds the functions that are used to access the MIB variables
|
|
// made visible by IP Router Manager
|
|
//
|
|
|
|
DWORD
|
|
(*g_AccessFunctionTable[NUMBER_OF_EXPORTED_VARIABLES])(
|
|
DWORD dwQueryType,
|
|
DWORD dwInEntrySize,
|
|
PMIB_OPAQUE_QUERY pInEntry,
|
|
PDWORD pOutEntrySize,
|
|
PMIB_OPAQUE_INFO pOutEntry,
|
|
PBOOL pbCache
|
|
) = {
|
|
AccessIfNumber,
|
|
AccessIfTable,
|
|
AccessIfRow,
|
|
AccessIpStats,
|
|
AccessIpAddrTable,
|
|
AccessIpAddrRow,
|
|
AccessIpForwardNumber,
|
|
AccessIpForwardTable,
|
|
AccessIpForwardRow,
|
|
AccessIpNetTable,
|
|
AccessIpNetRow,
|
|
AccessIcmpStats,
|
|
AccessTcpStats,
|
|
AccessTcpTable,
|
|
AccessTcpRow,
|
|
AccessUdpStats,
|
|
AccessUdpTable,
|
|
AccessUdpRow,
|
|
AccessMcastMfe,
|
|
AccessMcastMfeStats,
|
|
AccessBestIf,
|
|
AccessBestRoute,
|
|
AccessProxyArp,
|
|
AccessMcastIfStats,
|
|
AccessMcastStats,
|
|
AccessIfStatus,
|
|
AccessMcastBoundary,
|
|
AccessMcastScope,
|
|
AccessDestMatching,
|
|
AccessDestLonger,
|
|
AccessDestShorter,
|
|
AccessRouteMatching,
|
|
AccessRouteLonger,
|
|
AccessRouteShorter,
|
|
AccessSetRouteState,
|
|
AccessMcastMfeStatsEx
|
|
};
|
|
|
|
|
|
#ifdef DEADLOCK_DEBUG
|
|
|
|
PBYTE g_pszLockNames[NUM_LOCKS] = {"IP Address Lock",
|
|
"IP Forward Lock",
|
|
"IP Net Lock",
|
|
"TCP Lock",
|
|
"UDP Lock",
|
|
"ICB List Lock",
|
|
"ProtocolCB List Lock",
|
|
"Binding List Lock",
|
|
"Boundary Table Lock",
|
|
"MZAP Timer Lock",
|
|
"ZBR List Lock",
|
|
"ZLE List Lock",
|
|
"ZAM Cache Lock"
|
|
};
|
|
|
|
#endif // DEADLOCK_DEBUG
|
|
|
|
//
|
|
// The following is the time the Router Manager started
|
|
//
|
|
|
|
DWORD g_dwStartTime;
|
|
|
|
|
|
|
|
HANDLE g_hIpDevice;
|
|
HANDLE g_hMcastDevice;
|
|
HANDLE g_hIpRouteChangeDevice;
|
|
|
|
|
|
//
|
|
// These various caches
|
|
//
|
|
|
|
IP_CACHE g_IpInfo;
|
|
TCP_CACHE g_TcpInfo;
|
|
UDP_CACHE g_UdpInfo;
|
|
|
|
//
|
|
// Each of the groups have a private heap
|
|
//
|
|
|
|
HANDLE g_hIfHeap;
|
|
HANDLE g_hIpAddrHeap;
|
|
HANDLE g_hIpForwardHeap;
|
|
HANDLE g_hIpNetHeap;
|
|
HANDLE g_hTcpHeap;
|
|
HANDLE g_hUdpHeap;
|
|
|
|
PICB g_pInternalInterfaceCb;
|
|
PICB g_pLoopbackInterfaceCb;
|
|
|
|
DWORD g_dwNextICBSeqNumberCounter;
|
|
|
|
ULONG g_ulNumBindings;
|
|
ULONG g_ulNumInterfaces;
|
|
ULONG g_ulNumNonClientInterfaces;
|
|
|
|
LIST_ENTRY g_leStackRoutesToRestore;
|
|
|
|
SUPPORT_FUNCTIONS g_sfnDimFunctions;
|
|
PICMP_ROUTER_ADVT_MSG g_pIcmpAdvt;
|
|
SOCKADDR_IN g_sinAllSystemsAddr;
|
|
WSABUF g_wsabufICMPAdvtBuffer;
|
|
WSABUF g_wsaIpRcvBuf;
|
|
|
|
BOOL g_bUninitServer;
|
|
|
|
MCAST_OVERLAPPED g_rginMcastMsg[NUM_MCAST_IRPS];
|
|
|
|
IPNotifyData g_IpNotifyData;
|
|
ROUTE_CHANGE_INFO g_rgIpRouteNotifyOutput[NUM_ROUTE_CHANGE_IRPS];
|
|
|
|
#endif
|