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.
|
|
/*++
Copyright (C) 1999 Microsoft Corporation
Module Name:
perfmon5.h
Abstract:
<abstract>
--*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <limits.h>
#include <windows.h>
#include <winperf.h>
#include <pdh.h>
#include <pdhmsg.h>
#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
|