|
|
1.1 root 1:
2: /******************************************************************************\
3: * This is a part of the Microsoft Source Code Samples.
4: * Copyright (C) 1993 Microsoft Corporation.
5: * All rights reserved.
6: * This source code is only intended as a supplement to
7: * Microsoft Development Tools and/or WinHelp documentation.
8: * See these sources for detailed information regarding the
9: * Microsoft samples programs.
10: \******************************************************************************/
11:
12:
13: /******************************************************************************
14:
15: P V I E W D A T A
16:
17: Name: pviewdat.h
18:
19: Description:
20: Prototypes of functions used in pviewdat.c
21:
22: ******************************************************************************/
23:
24:
25:
26:
27:
28: //******************************************************************************
29: //
30: // Titles and indexes.
31: //
32: // See GetPerfTitleSz() in perfdata.c on how to retrieve these data.
33: //
34: // This is not complete, for complete listing
35: // see under hkey_local_system
36: // \software
37: // \microsoft
38: // \windows nt
39: // \currentversion
40: // \perflib
41: // \###
42: //
43:
44: #define PN_PROCESS TEXT("Process")
45: #define PN_PROCESS_CPU TEXT("% Processor Time")
46: #define PN_PROCESS_PRIV TEXT("% Privileged Time")
47: #define PN_PROCESS_USER TEXT("% User Time")
48: #define PN_PROCESS_WORKING_SET TEXT("Working Set")
49: #define PN_PROCESS_PEAK_WS TEXT("Working Set Peak")
50: #define PN_PROCESS_PRIO TEXT("Priority Base")
51: #define PN_PROCESS_ELAPSE TEXT("Elapsed Time")
52: #define PN_PROCESS_ID TEXT("ID Process")
53: #define PN_PROCESS_PRIVATE_PAGE TEXT("Private Bytes")
54: #define PN_PROCESS_VIRTUAL_SIZE TEXT("Virtual Bytes")
55: #define PN_PROCESS_PEAK_VS TEXT("Virtual Bytes Peak")
56: #define PN_PROCESS_FAULT_COUNT TEXT("Page Faults/sec")
57:
58:
59: #define PN_THREAD TEXT("Thread")
60: #define PN_THREAD_CPU TEXT("% Processor Time")
61: #define PN_THREAD_PRIV TEXT("% Privileged Time")
62: #define PN_THREAD_USER TEXT("% User Time")
63: #define PN_THREAD_START TEXT("Start Address")
64: #define PN_THREAD_SWITCHES TEXT("Context Switches/sec")
65: #define PN_THREAD_PRIO TEXT("Priority Current")
66: #define PN_THREAD_BASE_PRIO TEXT("Priority Base")
67: #define PN_THREAD_ELAPSE TEXT("Elapsed Time")
68:
69: #define PN_THREAD_DETAILS TEXT("Thread Details")
70: #define PN_THREAD_PC TEXT("User PC")
71:
72: #define PN_IMAGE TEXT("Image")
73: #define PN_IMAGE_NOACCESS TEXT("No Access")
74: #define PN_IMAGE_READONLY TEXT("Read Only")
75: #define PN_IMAGE_READWRITE TEXT("Read/Write")
76: #define PN_IMAGE_WRITECOPY TEXT("Write Copy")
77: #define PN_IMAGE_EXECUTABLE TEXT("Executable")
78: #define PN_IMAGE_EXE_READONLY TEXT("Exec Read Only")
79: #define PN_IMAGE_EXE_READWRITE TEXT("Exec Read/Write")
80: #define PN_IMAGE_EXE_WRITECOPY TEXT("Exec Write Copy")
81:
82:
83: #define PN_PROCESS_ADDRESS_SPACE TEXT("Process Address Space")
84: #define PN_PROCESS_PRIVATE_NOACCESS TEXT("Reserved Space No Access")
85: #define PN_PROCESS_PRIVATE_READONLY TEXT("Reserved Space Read Only")
86: #define PN_PROCESS_PRIVATE_READWRITE TEXT("Reserved Space Read/Write")
87: #define PN_PROCESS_PRIVATE_WRITECOPY TEXT("Reserved Space Write Copy")
88: #define PN_PROCESS_PRIVATE_EXECUTABLE TEXT("Reserved Space Executable")
89: #define PN_PROCESS_PRIVATE_EXE_READONLY TEXT("Reserved Space Exec Read Only")
90: #define PN_PROCESS_PRIVATE_EXE_READWRITE TEXT("Reserved Space Exec Read/Write")
91: #define PN_PROCESS_PRIVATE_EXE_WRITECOPY TEXT("Reserved Space Exec Write Copy")
92:
93:
94: #define PN_PROCESS_MAPPED_NOACCESS TEXT("Mapped Space No Access")
95: #define PN_PROCESS_MAPPED_READONLY TEXT("Mapped Space Read Only")
96: #define PN_PROCESS_MAPPED_READWRITE TEXT("Mapped Space Read/Write")
97: #define PN_PROCESS_MAPPED_WRITECOPY TEXT("Mapped Space Write Copy")
98: #define PN_PROCESS_MAPPED_EXECUTABLE TEXT("Mapped Space Executable")
99: #define PN_PROCESS_MAPPED_EXE_READONLY TEXT("Mapped Space Exec Read Only")
100: #define PN_PROCESS_MAPPED_EXE_READWRITE TEXT("Mapped Space Exec Read/Write")
101: #define PN_PROCESS_MAPPED_EXE_WRITECOPY TEXT("Mapped Space Exec Write Copy")
102:
103:
104: #define PN_PROCESS_IMAGE_NOACCESS TEXT("Image Space No Access")
105: #define PN_PROCESS_IMAGE_READONLY TEXT("Image Space Read Only")
106: #define PN_PROCESS_IMAGE_READWRITE TEXT("Image Space Read/Write")
107: #define PN_PROCESS_IMAGE_WRITECOPY TEXT("Image Space Write Copy")
108: #define PN_PROCESS_IMAGE_EXECUTABLE TEXT("Image Space Executable")
109: #define PN_PROCESS_IMAGE_EXE_READONLY TEXT("Image Space Exec Read Only")
110: #define PN_PROCESS_IMAGE_EXE_READWRITE TEXT("Image Space Exec Read/Write")
111: #define PN_PROCESS_IMAGE_EXE_WRITECOPY TEXT("Image Space Exec Write Copy")
112:
113:
114:
115:
116:
117:
118:
119: DWORD PX_PROCESS;
120: DWORD PX_PROCESS_CPU;
121: DWORD PX_PROCESS_PRIV;
122: DWORD PX_PROCESS_USER;
123: DWORD PX_PROCESS_WORKING_SET;
124: DWORD PX_PROCESS_PEAK_WS;
125: DWORD PX_PROCESS_PRIO;
126: DWORD PX_PROCESS_ELAPSE;
127: DWORD PX_PROCESS_ID;
128: DWORD PX_PROCESS_PRIVATE_PAGE;
129: DWORD PX_PROCESS_VIRTUAL_SIZE;
130: DWORD PX_PROCESS_PEAK_VS;
131: DWORD PX_PROCESS_FAULT_COUNT;
132: DWORD PX_PROCESS_PAGED_POOL_QUOTA;
133: DWORD PX_PROCESS_PEAK_PAGED_POOL_QUOTA;
134: DWORD PX_PROCESS_NONPAGED_POOL_QUOTA;
135: DWORD PX_PROCESS_PEAK_PAGED_POOL;
136: DWORD PX_PROCESS_PEAK_NONPAGED_POOL;
137: DWORD PX_PROCESS_CUR_PAGED_POOL;
138: DWORD PX_PROCESS_CUR_NONPAGED_POOL;
139: DWORD PX_PROCESS_PAGED_POOL_LIMIT;
140: DWORD PX_PROCESS_NONPAGED_POOL_LIMIT;
141:
142:
143: DWORD PX_THREAD;
144: DWORD PX_THREAD_CPU;
145: DWORD PX_THREAD_PRIV;
146: DWORD PX_THREAD_USER;
147: DWORD PX_THREAD_START;
148: DWORD PX_THREAD_SWITCHES;
149: DWORD PX_THREAD_PRIO;
150: DWORD PX_THREAD_BASE_PRIO;
151: DWORD PX_THREAD_ELAPSE;
152:
153: DWORD PX_THREAD_DETAILS;
154: DWORD PX_THREAD_PC;
155:
156: DWORD PX_IMAGE;
157: DWORD PX_IMAGE_NOACCESS;
158: DWORD PX_IMAGE_READONLY;
159: DWORD PX_IMAGE_READWRITE;
160: DWORD PX_IMAGE_WRITECOPY;
161: DWORD PX_IMAGE_EXECUTABLE;
162: DWORD PX_IMAGE_EXE_READONLY;
163: DWORD PX_IMAGE_EXE_READWRITE;
164: DWORD PX_IMAGE_EXE_WRITECOPY;
165:
166:
167: DWORD PX_PROCESS_ADDRESS_SPACE;
168: DWORD PX_PROCESS_PRIVATE_NOACCESS;
169: DWORD PX_PROCESS_PRIVATE_READONLY;
170: DWORD PX_PROCESS_PRIVATE_READWRITE;
171: DWORD PX_PROCESS_PRIVATE_WRITECOPY;
172: DWORD PX_PROCESS_PRIVATE_EXECUTABLE;
173: DWORD PX_PROCESS_PRIVATE_EXE_READONLY;
174: DWORD PX_PROCESS_PRIVATE_EXE_READWRITE;
175: DWORD PX_PROCESS_PRIVATE_EXE_WRITECOPY;
176:
177:
178: DWORD PX_PROCESS_MAPPED_NOACCESS;
179: DWORD PX_PROCESS_MAPPED_READONLY;
180: DWORD PX_PROCESS_MAPPED_READWRITE;
181: DWORD PX_PROCESS_MAPPED_WRITECOPY;
182: DWORD PX_PROCESS_MAPPED_EXECUTABLE;
183: DWORD PX_PROCESS_MAPPED_EXE_READONLY;
184: DWORD PX_PROCESS_MAPPED_EXE_READWRITE;
185: DWORD PX_PROCESS_MAPPED_EXE_WRITECOPY;
186:
187:
188: DWORD PX_PROCESS_IMAGE_NOACCESS;
189: DWORD PX_PROCESS_IMAGE_READONLY;
190: DWORD PX_PROCESS_IMAGE_READWRITE;
191: DWORD PX_PROCESS_IMAGE_WRITECOPY;
192: DWORD PX_PROCESS_IMAGE_EXECUTABLE;
193: DWORD PX_PROCESS_IMAGE_EXE_READONLY;
194: DWORD PX_PROCESS_IMAGE_EXE_READWRITE;
195: DWORD PX_PROCESS_IMAGE_EXE_WRITECOPY;
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207: #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
208:
209:
210:
211:
212:
213:
214:
215: typedef struct _TIME_FIELD
216: TIME_FIELD,
217: *PTIME_FIELD;
218:
219: struct _TIME_FIELD
220: {
221: INT Hours;
222: INT Mins;
223: INT Secs;
224: INT mSecs;
225: };
226:
227:
228:
229:
230:
231:
232:
233:
234: void RefreshPviewDlgThreadPC
235: (HWND hPviewDlg,
236: LPTSTR szProcessName,
237: LPTSTR szThreadName,
238: PPERF_OBJECT pThreadDetailsObject,
239: PPERF_DATA pCostlyData);
240:
241:
242: BOOL RefreshMemoryDlg
243: (HWND hMemDlg,
244: PPERF_INSTANCE pProcessInstance,
245: PPERF_OBJECT pProcessObject,
246: PPERF_OBJECT pAddressObject,
247: PPERF_OBJECT pImageObject);
248:
249:
250: void RefreshMemoryDlgImage
251: (HWND hMemDlg,
252: DWORD dwIndex,
253: PPERF_OBJECT pImageObject);
254:
255:
256: void RefreshPviewDlgMemoryData
257: (HWND hPviewDlg,
258: PPERF_INSTANCE pProcessInstance,
259: PPERF_OBJECT pProcessObject,
260: PPERF_OBJECT pAddressObject);
261:
262:
263: PPERF_DATA RefreshPerfData
264: (HKEY hPerfKey,
265: LPTSTR szObjectIndex,
266: PPERF_DATA pData,
267: DWORD *pDataSize);
268:
269:
270: void RefreshProcessList
271: (HWND hProcessList,
272: PPERF_OBJECT pObject);
273:
274:
275: void RefreshProcessData
276: (HWND hWnd,
277: PPERF_OBJECT pObject,
278: DWORD ProcessIndex);
279:
280:
281: void RefreshThreadList
282: (HWND hThreadList,
283: PPERF_OBJECT pObject,
284: DWORD ParentIndex);
285:
286:
287: void RefreshThreadData
288: (HWND hWnd,
289: PPERF_OBJECT pThreadObj,
290: DWORD ThreadIndex,
291: PPERF_OBJECT pProcessObj,
292: PPERF_INSTANCE pProcessInst);
293:
294: WORD ProcessPriority
295: (PPERF_OBJECT pObject,
296: PPERF_INSTANCE pInstance);
297:
298:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.