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)
423 if (ProcessSD !=
NULL)
542 static const LPWSTR ellipsis =
L"...";
593 sizeof(ProcessParams),
603 sizeof(CommandLineStr),
634 new_entry->
str = new_string;
640 cache->pnext = new_entry;
712 ULONG WorkingSetSizeBytes;
719 WorkingSetSizeBytes = 0;
723 return WorkingSetSizeBytes;
728 ULONG PeakWorkingSetSizeBytes;
735 PeakWorkingSetSizeBytes = 0;
739 return PeakWorkingSetSizeBytes;
744 ULONG WorkingSetSizeDelta;
751 WorkingSetSizeDelta = 0;
755 return WorkingSetSizeDelta;
760 ULONG PageFaultCount;
771 return PageFaultCount;
776 ULONG PageFaultCountDelta;
783 PageFaultCountDelta = 0;
787 return PageFaultCountDelta;
792 ULONG VirtualMemorySizeBytes;
799 VirtualMemorySizeBytes = 0;
803 return VirtualMemorySizeBytes;
808 ULONG PagedPoolUsage;
819 return PagedPoolUsage;
824 ULONG NonPagedPoolUsage;
831 NonPagedPoolUsage = 0;
835 return NonPagedPoolUsage;
888 ULONG USERObjectCount;
899 return USERObjectCount;
904 ULONG GDIObjectCount;
915 return GDIObjectCount;
949 Total = Total * (PageSize / 1024);
983 Peak = Peak * (PageSize / 1024);
1003 Paged = Paged * (PageSize / 1024);
1004 NonPaged = NonPaged * (PageSize / 1024);
1006 Total = Paged + NonPaged;
1023 Paged = Paged * (PageSize / 1024);
1040 NonPaged = NonPaged * (PageSize / 1024);
1057 Total = Total * (PageSize / 1024);
1074 Available = Available * (PageSize / 1024);
1091 return SystemCache / 1024;
1109 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 SystemNumberOfHandles
ULONG PerfDataGetWorkingSetSizeBytes(ULONG Index)
struct _LIST_ENTRY * Blink
BOOL WINAPI EqualSid(PSID pSid1, PSID pSid2)
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)
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)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
ULONG PerfDataGetPhysicalMemoryTotalK(void)
ULONG PerfDataGetHandleCount(ULONG Index)
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
#define HeapFree(x, y, z)
PCMD_LINE_CACHE global_cache
NTSTATUS NTAPI NtQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
_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)