Leaked source code of windows server 2003
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.
 
 
 
 
 
 

223 lines
5.8 KiB

/*++
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__