Reactos
at master 97 lines 3.2 kB view raw
1/* 2 * PROJECT: ReactOS Task Manager 3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) 4 * PURPOSE: Performance Counters 5 * COPYRIGHT: Copyright 1999-2001 Brian Palmer <brianp@reactos.org> 6 * Copyright 2014 Ismael Ferreras Morezuelas <swyterzone+ros@gmail.com> 7 */ 8 9#pragma once 10 11#define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart)) 12 13typedef struct _PERFDATA 14{ 15 WCHAR ImageName[MAX_PATH + _countof(L" *32") - 1]; 16 HANDLE ProcessId; 17 WCHAR UserName[MAX_PATH]; 18 ULONG SessionId; 19 ULONG CPUUsage; 20 LARGE_INTEGER CPUTime; 21 ULONG WorkingSetSizeBytes; 22 ULONG PeakWorkingSetSizeBytes; 23 ULONG WorkingSetSizeDelta; 24 ULONG PageFaultCount; 25 ULONG PageFaultCountDelta; 26 ULONG VirtualMemorySizeBytes; 27 ULONG PagedPoolUsagePages; 28 ULONG NonPagedPoolUsagePages; 29 ULONG BasePriority; 30 ULONG HandleCount; 31 ULONG ThreadCount; 32 ULONG USERObjectCount; 33 ULONG GDIObjectCount; 34 IO_COUNTERS IOCounters; 35 36 LARGE_INTEGER UserTime; 37 LARGE_INTEGER KernelTime; 38} PERFDATA, *PPERFDATA; 39 40typedef struct _CMD_LINE_CACHE 41{ 42 DWORD idx; 43 LPWSTR str; 44 ULONG len; 45 struct _CMD_LINE_CACHE* pnext; 46} CMD_LINE_CACHE, *PCMD_LINE_CACHE; 47 48BOOL PerfDataInitialize(void); 49void PerfDataUninitialize(void); 50void PerfDataRefresh(void); 51 52BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData); 53ULONG PerfDataGetProcessIndex(ULONG pid); 54ULONG PerfDataGetProcessCount(void); 55ULONG PerfDataGetProcessorUsage(void); 56ULONG PerfDataGetProcessorSystemUsage(void); 57 58BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, ULONG nMaxCount); 59ULONG PerfDataGetProcessId(ULONG Index); 60BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, ULONG nMaxCount); 61 62BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount); 63void PerfDataDeallocCommandLineCache(); 64 65ULONG PerfDataGetSessionId(ULONG Index); 66ULONG PerfDataGetCPUUsage(ULONG Index); 67LARGE_INTEGER PerfDataGetCPUTime(ULONG Index); 68ULONG PerfDataGetWorkingSetSizeBytes(ULONG Index); 69ULONG PerfDataGetPeakWorkingSetSizeBytes(ULONG Index); 70ULONG PerfDataGetWorkingSetSizeDelta(ULONG Index); 71ULONG PerfDataGetPageFaultCount(ULONG Index); 72ULONG PerfDataGetPageFaultCountDelta(ULONG Index); 73ULONG PerfDataGetVirtualMemorySizeBytes(ULONG Index); 74ULONG PerfDataGetPagedPoolUsagePages(ULONG Index); 75ULONG PerfDataGetNonPagedPoolUsagePages(ULONG Index); 76ULONG PerfDataGetBasePriority(ULONG Index); 77ULONG PerfDataGetHandleCount(ULONG Index); 78ULONG PerfDataGetThreadCount(ULONG Index); 79ULONG PerfDataGetUSERObjectCount(ULONG Index); 80ULONG PerfDataGetGDIObjectCount(ULONG Index); 81BOOL PerfDataGetIOCounters(ULONG Index, PIO_COUNTERS pIoCounters); 82 83ULONG PerfDataGetCommitChargeTotalK(void); 84ULONG PerfDataGetCommitChargeLimitK(void); 85ULONG PerfDataGetCommitChargePeakK(void); 86 87ULONG PerfDataGetKernelMemoryTotalK(void); 88ULONG PerfDataGetKernelMemoryPagedK(void); 89ULONG PerfDataGetKernelMemoryNonPagedK(void); 90 91ULONG PerfDataGetPhysicalMemoryTotalK(void); 92ULONG PerfDataGetPhysicalMemoryAvailableK(void); 93ULONG PerfDataGetPhysicalMemorySystemCacheK(void); 94 95ULONG PerfDataGetSystemHandleCount(void); 96 97ULONG PerfDataGetTotalThreadCount(void);