26 #define WIN32_LEAN_AND_MEAN 29 #define NTOS_MODE_USER 53 #define CMD_LINE_MIN(a, b) (a < b ? a - sizeof(WCHAR) : b) 81 AllocateAndInitializeSid(&
NtSidAuthority, 1,
SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, &
SystemUserSid);
117 static WCHAR szDomainNameUnused[255];
118 DWORD DomainNameLen =
sizeof(szDomainNameUnused) /
sizeof(szDomainNameUnused[0]);
191 double CurrentKernelTime;
218 if (SysProcessorTimeInfo !=
NULL)
432 if (ProcessSD !=
NULL)
551 static const LPWSTR ellipsis =
L"...";
602 sizeof(ProcessParams),
612 sizeof(CommandLineStr),
649 cache->pnext = new_entry;
721 ULONG WorkingSetSizeBytes;
728 WorkingSetSizeBytes = 0;
732 return WorkingSetSizeBytes;
737 ULONG PeakWorkingSetSizeBytes;
744 PeakWorkingSetSizeBytes = 0;
748 return PeakWorkingSetSizeBytes;
753 ULONG WorkingSetSizeDelta;
760 WorkingSetSizeDelta = 0;
764 return WorkingSetSizeDelta;
769 ULONG PageFaultCount;
780 return PageFaultCount;
785 ULONG PageFaultCountDelta;
792 PageFaultCountDelta = 0;
796 return PageFaultCountDelta;
801 ULONG VirtualMemorySizeBytes;
808 VirtualMemorySizeBytes = 0;
812 return VirtualMemorySizeBytes;
817 ULONG PagedPoolUsage;
828 return PagedPoolUsage;
833 ULONG NonPagedPoolUsage;
840 NonPagedPoolUsage = 0;
844 return NonPagedPoolUsage;
897 ULONG USERObjectCount;
908 return USERObjectCount;
913 ULONG GDIObjectCount;
924 return GDIObjectCount;
958 Total = Total * (PageSize / 1024);
992 Peak = Peak * (PageSize / 1024);
1012 Paged = Paged * (PageSize / 1024);
1013 NonPaged = NonPaged * (PageSize / 1024);
1015 Total = Paged + NonPaged;
1032 Paged = Paged * (PageSize / 1024);
1049 NonPaged = NonPaged * (PageSize / 1024);
1066 Total = Total * (PageSize / 1024);
1083 Available = Available * (PageSize / 1024);
1100 return SystemCache / 1024;
1118 ULONG ThreadCount = 0;
ULONG PerfDataGetPhysicalMemorySystemCacheK(void)
#define CMD_LINE_MIN(a, b)
ULONG PerfDataGetBasePriority(ULONG Index)
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
ULONG PerfDataGetKernelMemoryNonPagedK(void)
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
#define SECURITY_LOCAL_SYSTEM_RID
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorTimeInfo
struct _PERFDATA * PPERFDATA
#define STATUS_INFO_LENGTH_MISMATCH
enum _SID_NAME_USE SID_NAME_USE
#define PROCESS_QUERY_INFORMATION
ULONG PerfDataGetWorkingSetSizeBytes(ULONG Index)
struct _LIST_ENTRY * Blink
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
NTSTATUS NTAPI NtQueryInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PVOID ProcessInformation, IN ULONG ProcessInformationLength, OUT PULONG ReturnLength OPTIONAL)
ULONG PerfDataGetCPUUsage(ULONG Index)
DWORD WINAPI GetSecurityInfo(HANDLE handle, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID *ppsidOwner, PSID *ppsidGroup, PACL *ppDacl, PACL *ppSacl, PSECURITY_DESCRIPTOR *ppSecurityDescriptor)
ULONG PerfDataGetPageFaultCount(ULONG Index)
BOOL PerfDataInitialize(void)
ULONG PerfDataGetCommitChargePeakK(void)
_In_ BOOL _In_ HANDLE hProcess
EXTINLINE DWORD WINAPI GetGuiResources(HANDLE hProcess, DWORD uiFlags)
ULONG PerfDataGetProcessIndex(ULONG pid)
#define ReadProcessMemory(a, b, c, d, e)
ULONG PerfDataGetCommitChargeLimitK(void)
ULONG PerfDataGetPageFaultCountDelta(ULONG Index)
ULONG PerfDataGetTotalThreadCount(void)
ULONG PerfDataGetProcessorSystemUsage(void)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
struct _SIDTOUSERNAME * PSIDTOUSERNAME
void PerfDataUninitialize(void)
ULONG PerfDataGetNonPagedPoolUsagePages(ULONG Index)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
ULONG PerfDataGetGDIObjectCount(ULONG Index)
struct _SIDTOUSERNAME SIDTOUSERNAME
ULONG PerfDataGetSystemHandleCount(void)
static LPWSTR PULONG pcwcUserName
ULONG PerfDataGetVirtualMemorySizeBytes(ULONG Index)
ULONG PerfDataGetPhysicalMemoryAvailableK(void)
struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
ULONG NonPagedPoolUsagePages
PVOID WINAPI FreeSid(PSID pSid)
ULONG PerfDataGetKernelMemoryPagedK(void)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, ULONG nMaxCount)
static LIST_ENTRY SidToUserNameHead
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
static SID_IDENTIFIER_AUTHORITY NtSidAuthority
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_In_ LPCSTR _Out_writes_bytes_to_opt_ cbSid PSID _Inout_ LPDWORD cbSid
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
_Inout_ PERBANDINFO * pbi
#define SystemPerformanceInformation
ULONG WorkingSetSizeDelta
BOOL WINAPI GetProcessIoCounters(IN HANDLE hProcess, OUT PIO_COUNTERS lpIoCounters)
#define SECURITY_NT_AUTHORITY
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
ULONG PerfDataGetProcessCount(void)
SYSTEM_HANDLE_INFORMATION SystemHandleInfo
BOOL WINAPI LookupAccountSidW(LPCWSTR pSystemName, PSID pSid, LPWSTR pAccountName, LPDWORD pdwAccountName, LPWSTR pDomainName, LPDWORD pdwDomainName, PSID_NAME_USE peUse)
BOOL PerfDataGetIOCounters(ULONG Index, PIO_COUNTERS pIoCounters)
SYSTEM_PERFORMANCE_INFORMATION SystemPerfInfo
ULONG PerfDataGetThreadCount(ULONG Index)
struct _LIST_ENTRY * Flink
LARGE_INTEGER liOldIdleTime
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
ULONG PageFaultCountDelta
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define NT_SUCCESS(StatCode)
DWORD WINAPI GetLengthSid(PSID pSid)
_In_ WDFCOLLECTION _In_ ULONG Index
ULONG PerfDataGetProcessId(ULONG Index)
SYSTEM_BASIC_INFORMATION SystemBasicInfo
VOID WINAPI CachedGetUserFromSid(PSID pSid, LPWSTR pUserName, PULONG pcwcUserName)
struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION * PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
ULONG WorkingSetSizeBytes
void PerfDataDeallocCommandLineCache()
ULONG PerfDataGetPeakWorkingSetSizeBytes(ULONG Index)
static const char * ImageName
LARGE_INTEGER liOldSystemTime
LARGE_INTEGER PerfDataGetCPUTime(ULONG Index)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
struct _CMD_LINE_CACHE CMD_LINE_CACHE
_Must_inspect_result_ _In_ WDFCMRESLIST List
struct _PERFDATA PERFDATA
#define memcpy(s1, s2, n)
SYSTEM_FILECACHE_INFORMATION SystemCacheInfo
ULONG PerfDataGetKernelMemoryTotalK(void)
BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData)
struct _SYSTEM_PROCESS_INFORMATION * PSYSTEM_PROCESS_INFORMATION
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalFree(HLOCAL hMem)
static void SidToUserName(PSID Sid, LPWSTR szBuffer, DWORD BufferSize)
ULONG PeakWorkingSetSizeBytes
#define FIELD_OFFSET(t, f)
#define OWNER_SECURITY_INFORMATION
ULONG PerfDataGetWorkingSetSizeDelta(ULONG Index)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
ULONG PerfDataGetSessionId(ULONG Index)
ULONG PerfDataGetCommitChargeTotalK(void)
ULONG PerfDataGetPhysicalMemoryTotalK(void)
ULONG PerfDataGetHandleCount(ULONG Index)
static void new_string(void)
CRITICAL_SECTION PerfDataCriticalSection
BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, ULONG nMaxCount)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
struct _TOKEN_USER * PTOKEN_USER
ULONG PerfDataGetProcessorUsage(void)
char * cleanup(char *str)
_Check_return_ long __cdecl labs(_In_ long x)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
BOOL WINAPI CopySid(DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid)
ULONG VirtualMemorySizeBytes
static SERVICE_STATUS status
ULONG PerfDataGetUSERObjectCount(ULONG Index)
ULONG PerfDataGetPagedPoolUsagePages(ULONG Index)
_In_ LONG _In_ LONG Limit
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define HeapFree(x, y, z)
PCMD_LINE_CACHE global_cache
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
void PerfDataRefresh(void)
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
ULONG PagedPoolUsagePages
BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount)