/*++ Copyright (C) 1999 Microsoft Corporation Module Name: perfmon5.h Abstract: --*/ #include #include #include #include #include #include #include #include #include #include #define FileSeekBegin(hFile, lAmtToMove) SetFilePointer(hFile, lAmtToMove, NULL, FILE_BEGIN) // these defintions are copied from the NT4 perfmon.exe source files typedef struct OPTIONSSTRUCT { BOOL bMenubar; BOOL bToolbar; BOOL bStatusbar; BOOL bAlwaysOnTop; } OPTIONS ; //======================================// // DISKLINE data type // //======================================// #define dwLineSignature (MAKELONG ('L', 'i')) typedef struct DISKSTRINGSTRUCT { DWORD dwLength; DWORD dwOffset; } DISKSTRING, * PDISKSTRING; typedef struct _TIMELINESTRUCT { INT ppd; // Pixels Per DataPoint INT rppd; // Remaining Pixels Per DataPoint INT xLastTime; // X coordinate of last time line. INT iValidValues; // High water mark for valid data. }TIMELINESTRUCT; #define LineTypeChart 1 #define LineTypeAlert 2 #define LineTypeReport 3 typedef struct LINEVISUALSTRUCT { COLORREF crColor; int iColorIndex; int iStyle; int iStyleIndex; int iWidth; int iWidthIndex; } LINEVISUAL, * PLINEVISUAL; typedef struct DISKLINESTRUCT { int iLineType; DISKSTRING dsSystemName; DISKSTRING dsObjectName; DISKSTRING dsCounterName; DISKSTRING dsInstanceName; DISKSTRING dsPINName; DISKSTRING dsParentObjName; DWORD dwUniqueID; LINEVISUAL Visual; int iScaleIndex; FLOAT eScale; BOOL bAlertOver; FLOAT eAlertValue; DISKSTRING dsAlertProgram; BOOL bEveryTime; } DISKLINE, * PDISKLINE; #define PerfSignatureLen 20 #define szPerfChartSignature ((LPCWSTR) L"PERF CHART") #define szPerfAlertSignature ((LPCWSTR) L"PERF ALERT") #define szPerfLogSignature ((LPCWSTR) L"PERF LOG") #define szPerfReportSignature ((LPCWSTR) L"PERF REPORT") #define szPerfWorkspaceSignature ((LPCWSTR) L"PERF WORKSPACE") #define LINE_GRAPH 1 #define BAR_GRAPH 2 #define PMC_FILE 1 #define PMA_FILE 2 #define PML_FILE 3 #define PMR_FILE 4 #define PMW_FILE 5 #define AlertMajorVersion 1 // minor version 2 to support Alert msg name // minor version 3 to support alert, report, log intervals in msec // minor version 4 to support alert event logging // minor version 6 to support alert misc options #define AlertMinorVersion 6 typedef struct DISKALERTSTRUCT { LINEVISUAL Visual; DWORD dwNumLines; DWORD dwIntervalSecs; BOOL bManualRefresh; BOOL bSwitchToAlert; BOOL bNetworkAlert; WCHAR MessageName[16]; OPTIONS perfmonOptions; DWORD MiscOptions; } DISKALERT; typedef struct PERFFILEHEADERSTRUCT { // PERFFILEHEADER WCHAR szSignature[PerfSignatureLen]; DWORD dwMajorVersion; DWORD dwMinorVersion; BYTE abyUnused[100]; } PERFFILEHEADER; // minor version 3 to support alert, report, log intervals in msec #define ChartMajorVersion 1 #define ChartMinorVersion 3 typedef struct _graph_options { BOOL bLegendChecked; BOOL bMenuChecked; BOOL bLabelsChecked; BOOL bVertGridChecked; BOOL bHorzGridChecked; BOOL bStatusBarChecked; INT iVertMax; FLOAT eTimeInterval; INT iGraphOrHistogram; INT GraphVGrid, GraphHGrid, HistVGrid, HistHGrid; } GRAPH_OPTIONS; #define MAX_SYSTEM_NAME_LENGTH 128 #define PerfObjectLen 80 typedef struct DISKCHARTSTRUCT { DWORD dwNumLines; INT gMaxValues; LINEVISUAL Visual; GRAPH_OPTIONS gOptions; BOOL bManualRefresh; OPTIONS perfmonOptions; } DISKCHART; // minor version 3 to support alert, report, log intervals in msec #define ReportMajorVersion 1 #define ReportMinorVersion 3 typedef struct DISKREPORTSTRUCT { LINEVISUAL Visual; DWORD dwNumLines; DWORD dwIntervalSecs; BOOL bManualRefresh; OPTIONS perfmonOptions; } DISKREPORT; //=====================================// // Log File Counter Name data type // //=====================================// // minor version 3 to support alert, report, log intervals in msec // minor version 5 to support storing Log file name in setting // and start logging after reading the file. #define LogMajorVersion 1 #define LogMinorVersion 5 typedef struct DISKLOGSTRUCT { DWORD dwNumLines; DWORD dwIntervalSecs; BOOL bManualRefresh; OPTIONS perfmonOptions; WCHAR LogFileName[260]; } DISKLOG; typedef struct _LOGENTRYSTRUCT { DWORD ObjectTitleIndex; WCHAR szComputer[MAX_SYSTEM_NAME_LENGTH + 1]; WCHAR szObject[PerfObjectLen + 1]; BOOL bSaveCurrentName; struct _LOGENTRYSTRUCT * pNextLogEntry; } LOGENTRY, * PLOGENTRY; #define WorkspaceMajorVersion 1 // minor version 1 to support window placement data // minor version 2 to support alert msg name // minor version 3 to support alert, report, log intervals in msec // minor version 4 to support alert eventlog // minor version 5 to support log file name in log setting // minor version 6 to support alert misc options #define WorkspaceMinorVersion 6 typedef struct DISKWORKSPACESTRUCT { INT iPerfmonView; DWORD ChartOffset; DWORD AlertOffset; DWORD LogOffset; DWORD ReportOffset; WINDOWPLACEMENT WindowPlacement; } DISKWORKSPACE; WCHAR LOCAL_SYS_CODE_NAME[] = {L"...."}; #define sizeofCodeName sizeof(LOCAL_SYS_CODE_NAME) / sizeof(WCHAR) - 1