[NET][MC] Move NET USER strings from net.exe to netmsg.dll.
[reactos.git] / base / applications / taskmgr / perfdata.h
1 /*
2 * ReactOS Task Manager
3 *
4 * perfdata.h
5 *
6 * Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23 #pragma once
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
30
31 typedef struct _PERFDATA
32 {
33 WCHAR ImageName[MAX_PATH];
34 HANDLE ProcessId;
35 WCHAR UserName[MAX_PATH];
36 ULONG SessionId;
37 ULONG CPUUsage;
38 LARGE_INTEGER CPUTime;
39 ULONG WorkingSetSizeBytes;
40 ULONG PeakWorkingSetSizeBytes;
41 ULONG WorkingSetSizeDelta;
42 ULONG PageFaultCount;
43 ULONG PageFaultCountDelta;
44 ULONG VirtualMemorySizeBytes;
45 ULONG PagedPoolUsagePages;
46 ULONG NonPagedPoolUsagePages;
47 ULONG BasePriority;
48 ULONG HandleCount;
49 ULONG ThreadCount;
50 ULONG USERObjectCount;
51 ULONG GDIObjectCount;
52 IO_COUNTERS IOCounters;
53
54 LARGE_INTEGER UserTime;
55 LARGE_INTEGER KernelTime;
56 } PERFDATA, *PPERFDATA;
57
58 typedef struct _CMD_LINE_CACHE
59 {
60 DWORD idx;
61 LPWSTR str;
62 ULONG len;
63 struct _CMD_LINE_CACHE* pnext;
64 } CMD_LINE_CACHE, *PCMD_LINE_CACHE;
65
66 BOOL PerfDataInitialize(void);
67 void PerfDataUninitialize(void);
68 void PerfDataRefresh(void);
69
70 BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData);
71 ULONG PerfDataGetProcessIndex(ULONG pid);
72 ULONG PerfDataGetProcessCount(void);
73 ULONG PerfDataGetProcessorUsage(void);
74 ULONG PerfDataGetProcessorSystemUsage(void);
75
76 BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, ULONG nMaxCount);
77 ULONG PerfDataGetProcessId(ULONG Index);
78 BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, ULONG nMaxCount);
79
80 BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount);
81 void PerfDataDeallocCommandLineCache();
82
83 ULONG PerfDataGetSessionId(ULONG Index);
84 ULONG PerfDataGetCPUUsage(ULONG Index);
85 LARGE_INTEGER PerfDataGetCPUTime(ULONG Index);
86 ULONG PerfDataGetWorkingSetSizeBytes(ULONG Index);
87 ULONG PerfDataGetPeakWorkingSetSizeBytes(ULONG Index);
88 ULONG PerfDataGetWorkingSetSizeDelta(ULONG Index);
89 ULONG PerfDataGetPageFaultCount(ULONG Index);
90 ULONG PerfDataGetPageFaultCountDelta(ULONG Index);
91 ULONG PerfDataGetVirtualMemorySizeBytes(ULONG Index);
92 ULONG PerfDataGetPagedPoolUsagePages(ULONG Index);
93 ULONG PerfDataGetNonPagedPoolUsagePages(ULONG Index);
94 ULONG PerfDataGetBasePriority(ULONG Index);
95 ULONG PerfDataGetHandleCount(ULONG Index);
96 ULONG PerfDataGetThreadCount(ULONG Index);
97 ULONG PerfDataGetUSERObjectCount(ULONG Index);
98 ULONG PerfDataGetGDIObjectCount(ULONG Index);
99 BOOL PerfDataGetIOCounters(ULONG Index, PIO_COUNTERS pIoCounters);
100
101 ULONG PerfDataGetCommitChargeTotalK(void);
102 ULONG PerfDataGetCommitChargeLimitK(void);
103 ULONG PerfDataGetCommitChargePeakK(void);
104
105 ULONG PerfDataGetKernelMemoryTotalK(void);
106 ULONG PerfDataGetKernelMemoryPagedK(void);
107 ULONG PerfDataGetKernelMemoryNonPagedK(void);
108
109 ULONG PerfDataGetPhysicalMemoryTotalK(void);
110 ULONG PerfDataGetPhysicalMemoryAvailableK(void);
111 ULONG PerfDataGetPhysicalMemorySystemCacheK(void);
112
113 ULONG PerfDataGetSystemHandleCount(void);
114
115 ULONG PerfDataGetTotalThreadCount(void);
116
117
118 #ifdef __cplusplus
119 };
120 #endif