blob: 724a92400b90b66d2b88b99d2e2799918c2735cb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
perfmtrp.h
Abstract:
This module contains NT/Win32 Perfmtr private data and types
Author:
Mark Enstrom (marke) 28-Mar-1991
Revision History:
--*/
#ifndef _CALCPERFH_INCLUDED_
#define _CALCPERFH_INCLUDED_
#define MAX_PROCESSOR 16
#define DATA_LIST_LENGTH 100
#define DELAY_SECONDS 2
//
// display const
//
#define SAVE_SUBJECTS (MAX_PROCESSOR+12+3+1)
#define BORDER_WIDTH 2
#define INDENT_WIDTH 8
#define GRAPH_WIDTH 130
#define GRAPH_HEIGHT 40
#define PERF_METER_CPU_CYCLE 10
//
// time constant for sampling performance
//
#define PERF_TIME_DELAY 1000
//
// types of display modes
//
#define DISPLAY_MODE_CPU_ONLY 0
#define DISPLAY_MODE_CPU 10
#define DISPLAY_MODE_VM 20
#define DISPLAY_MODE_CACHE 30
#define DISPLAY_MODE_POOL 40
#define DISPLAY_MODE_IO 50
#define DISPLAY_MODE_LPC 60
#define DISPLAY_MODE_SVR 70
//
// structure to save screen statistics
//
typedef struct _CPU_DATA_LIST
{
PUCHAR KernelTime;
PUCHAR UserTime;
PUCHAR TotalTime;
} CPU_DATA_LIST,*PCPU_DATA_LIST;
typedef struct _PERF_DATA_LIST
{
PULONG PerfData;
} PERF_DATA_LIST,*PPERF_DATA_LIST;
//
// This info packet is associated with each
// performance item
//
typedef struct tagDISPLAYITEM
{
HDC MemoryDC;
HBITMAP MemoryBitmap;
ULONG Max;
ULONG PositionX;
ULONG PositionY;
ULONG Width;
ULONG Height;
ULONG NumberOfElements;
ULONG CurrentDrawingPos;
RECT Border;
RECT GraphBorder;
RECT TextBorder;
BOOL Display;
BOOL ChangeScale;
ULONG KernelTime[DATA_LIST_LENGTH];
ULONG UserTime[DATA_LIST_LENGTH];
ULONG TotalTime[DATA_LIST_LENGTH];
ULONG DpcTime[DATA_LIST_LENGTH];
ULONG InterruptTime[DATA_LIST_LENGTH];
} DISPLAY_ITEM,*PDISPLAY_ITEM;
//
// flag to activate each menu selection
//
#define DISPLAY_INACTIVE 0
#define DISPLAY_ACTIVE 1
//
// Keep book-keeping info for all processors
//
typedef struct _CPU_VALUE
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER IdleTime;
LARGE_INTEGER DpcTime;
LARGE_INTEGER InterruptTime;
ULONG InterruptCount;
} CPU_VALUE,*PCPU_VALUE;
BOOL
UpdatePerfInfo(
PULONG DataPointer,
ULONG NewDataValue,
PULONG OldMaxValue
);
VOID
InitListData(
PDISPLAY_ITEM PerfListItem,
ULONG NumberOfItems
);
#endif /* _CALCPERFH_INCLUDED */
|