/*++ Copyright (c) 1998 Microsoft Corporation Module Name: net\routing\monitor\ip\showmib.h Abstract: Author: Anand Mahalingam 7/10/98 Revision History: --*/ #ifndef __IPMON_SHOWMIB_H__ #define __IPMON_SHOWMIB_H__ #define MAX_NUM_INDICES 6 typedef DWORD (*PGET_OPT_FN)( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); typedef struct _MIB_OBJECT_PARSER { PWCHAR pwszMIBObj; DWORD dwMinOptArg; PGET_OPT_FN pfnMIBObjParser; } MIB_OBJECT_PARSER,*PMIB_OBJECT_PARSER; DWORD GetMIBIfIndex( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); DWORD GetMIBIpAddress( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); DWORD GetMIBIpFwdIndex( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); DWORD GetMIBIpNetIndex( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); DWORD GetMIBTcpConnIndex( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); DWORD GetMIBUdpConnIndex( IN PTCHAR *pptcArguments, IN DWORD dwCurrentIndex, OUT PDWORD pdwIndices, OUT PDWORD pdwNumParsed ); extern MIB_OBJECT_PARSER MIBObjectMap[]; extern ULONG g_ulNumMibObjects; extern HANDLE g_hConsole; typedef VOID (PRINT_FN)( IN MIB_SERVER_HANDLE hMibServer, IN PMIB_OPAQUE_INFO pInfo ); PRINT_FN PrintIpForwardTable; PRINT_FN PrintIpForwardRow; VOID PrintMfeTable( MIB_SERVER_HANDLE hMibServer, PMIB_OPAQUE_INFO prpcInfo, PDWORD pdwLastGrp, PDWORD pdwLastSrc, PDWORD pdwLastSrcMask, DWORD dwRangeGrp, DWORD dwRangeGrpMask, DWORD dwRangeSrc, DWORD dwRangeSrcMask, DWORD dwType, PBOOL pbDone ); VOID PrintMfeStatsTable( MIB_SERVER_HANDLE hMibServer, PMIB_OPAQUE_INFO prpcInfo, PDWORD pdwLastGrp, PDWORD pdwLastSrc, PDWORD pdwLastSrcMask, DWORD dwRangeGrp, DWORD dwRangeGrpMask, DWORD dwRangeSrc, DWORD dwRangeSrcMask, DWORD dwType, PBOOL pbDone, BOOL bStatsAll ); DWORD GetMfe( MIB_SERVER_HANDLE hMIBServer, BOOL bIndexPresent, PTCHAR *pptcAruments, DWORD dwNumArg, BOOL bIncludeStats ); DWORD GetPrintDestinationInfo( MIB_SERVER_HANDLE hMprMIB, BOOL bIndexPresent, PWCHAR *ppwcArguments, DWORD dwArgCount ); DWORD GetPrintRouteInfo( MIB_SERVER_HANDLE hMprMIB, BOOL bIndexPresent, PWCHAR *ppwcArguments, DWORD dwArgCount ); void cls(HANDLE hConsole); BOOL WINAPI HandlerRoutine( DWORD dwCtrlType // control signal type ); #define PRINT_IPADDR(x) \ ((x)&0x000000ff),(((x)&0x0000ff00)>>8),(((x)&0x00ff0000)>>16),(((x)&0xff000000)>>24) typedef PRINT_FN *PPRINT_FN; typedef struct _MAGIC_TABLE { DWORD dwId; PPRINT_FN pfnPrintFunction; }MAGIC_TABLE, *PMAGIC_TABLE; extern MAGIC_TABLE MIBVar[]; #define IGMP_GETMODE_EXACT 0 #define IGMP_GETMODE_FIRST 1 #define IGMP_GETMODE_NEXT 2 #define DISPLAYLEN_PHYSADDR 3*MAXLEN_PHYSADDR + 8 #ifdef UNICODE #define MakeUnicodePhysAddr(ptszUnicode,pszAddr,dwLen) \ { \ CHAR __szTemp[DISPLAYLEN_PHYSADDR + 1]; \ DWORD __i,__dwTempLen; \ __dwTempLen = (((dwLen) <= MAXLEN_PHYSADDR) ? (dwLen) : MAXLEN_PHYSADDR); \ for(__i = 0; __i < __dwTempLen; __i++) \ { \ sprintf(&(__szTemp[3*__i]),"%02X-",pszAddr[__i]); \ } \ MultiByteToWideChar(GetConsoleOutputCP(), \ 0, \ (__szTemp), \ -1, \ (ptszUnicode), \ 3*__i); \ ptszUnicode[(3*__i) - 1] = TEXT('\0'); \ } #else #define MakeUnicodePhysAddr(ptszUnicode,pszAddr,dwLen) \ { \ CHAR __szTemp[DISPLAYLEN_PHYSADDR + 1]; \ DWORD __i,__dwTempLen; \ __dwTempLen = (((dwLen) <= MAXLEN_PHYSADDR) ? (dwLen) : MAXLEN_PHYSADDR); \ for(__i = 0; __i < __dwTempLen; __i++) \ { \ sprintf(&(__szTemp[3*__i]),"%02X-",pszAddr[__i]); \ } \ strncpy((ptszUnicode),__szTemp,3*__i); \ ptszUnicode[(3*__i) - 1] = TEXT('\0'); \ } #endif //UNICODE FN_HANDLE_CMD HandleIpMibShowObject; #endif // __IPMON_SHOWMIB_H__