287 lines
8.9 KiB
C
287 lines
8.9 KiB
C
|
|
||
|
/******************************************************************************
|
||
|
|
||
|
P V I E W D A T A
|
||
|
|
||
|
Name: pviewdat.h
|
||
|
|
||
|
Description:
|
||
|
Prototypes of functions used in pviewdat.c
|
||
|
|
||
|
******************************************************************************/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//******************************************************************************
|
||
|
//
|
||
|
// Titles and indexes.
|
||
|
//
|
||
|
// See GetPerfTitleSz() in perfdata.c on how to retrieve these data.
|
||
|
//
|
||
|
// This is not complete, for complete listing
|
||
|
// see under hkey_local_system
|
||
|
// \software
|
||
|
// \microsoft
|
||
|
// \windows nt
|
||
|
// \currentversion
|
||
|
// \perflib
|
||
|
// \###
|
||
|
//
|
||
|
|
||
|
#define PN_PROCESS TEXT("Process")
|
||
|
#define PN_PROCESS_CPU TEXT("% Processor Time")
|
||
|
#define PN_PROCESS_PRIV TEXT("% Privileged Time")
|
||
|
#define PN_PROCESS_USER TEXT("% User Time")
|
||
|
#define PN_PROCESS_WORKING_SET TEXT("Working Set")
|
||
|
#define PN_PROCESS_PEAK_WS TEXT("Working Set Peak")
|
||
|
#define PN_PROCESS_PRIO TEXT("Priority Base")
|
||
|
#define PN_PROCESS_ELAPSE TEXT("Elapsed Time")
|
||
|
#define PN_PROCESS_ID TEXT("ID Process")
|
||
|
#define PN_PROCESS_PRIVATE_PAGE TEXT("Private Bytes")
|
||
|
#define PN_PROCESS_VIRTUAL_SIZE TEXT("Virtual Bytes")
|
||
|
#define PN_PROCESS_PEAK_VS TEXT("Virtual Bytes Peak")
|
||
|
#define PN_PROCESS_FAULT_COUNT TEXT("Page Faults/sec")
|
||
|
|
||
|
|
||
|
#define PN_THREAD TEXT("Thread")
|
||
|
#define PN_THREAD_CPU TEXT("% Processor Time")
|
||
|
#define PN_THREAD_PRIV TEXT("% Privileged Time")
|
||
|
#define PN_THREAD_USER TEXT("% User Time")
|
||
|
#define PN_THREAD_START TEXT("Start Address")
|
||
|
#define PN_THREAD_SWITCHES TEXT("Context Switches/sec")
|
||
|
#define PN_THREAD_PRIO TEXT("Priority Current")
|
||
|
#define PN_THREAD_BASE_PRIO TEXT("Priority Base")
|
||
|
#define PN_THREAD_ELAPSE TEXT("Elapsed Time")
|
||
|
|
||
|
#define PN_THREAD_DETAILS TEXT("Thread Details")
|
||
|
#define PN_THREAD_PC TEXT("User PC")
|
||
|
|
||
|
#define PN_IMAGE TEXT("Image")
|
||
|
#define PN_IMAGE_NOACCESS TEXT("No Access")
|
||
|
#define PN_IMAGE_READONLY TEXT("Read Only")
|
||
|
#define PN_IMAGE_READWRITE TEXT("Read/Write")
|
||
|
#define PN_IMAGE_WRITECOPY TEXT("Write Copy")
|
||
|
#define PN_IMAGE_EXECUTABLE TEXT("Executable")
|
||
|
#define PN_IMAGE_EXE_READONLY TEXT("Exec Read Only")
|
||
|
#define PN_IMAGE_EXE_READWRITE TEXT("Exec Read/Write")
|
||
|
#define PN_IMAGE_EXE_WRITECOPY TEXT("Exec Write Copy")
|
||
|
|
||
|
|
||
|
#define PN_PROCESS_ADDRESS_SPACE TEXT("Process Address Space")
|
||
|
#define PN_PROCESS_PRIVATE_NOACCESS TEXT("Reserved Space No Access")
|
||
|
#define PN_PROCESS_PRIVATE_READONLY TEXT("Reserved Space Read Only")
|
||
|
#define PN_PROCESS_PRIVATE_READWRITE TEXT("Reserved Space Read/Write")
|
||
|
#define PN_PROCESS_PRIVATE_WRITECOPY TEXT("Reserved Space Write Copy")
|
||
|
#define PN_PROCESS_PRIVATE_EXECUTABLE TEXT("Reserved Space Executable")
|
||
|
#define PN_PROCESS_PRIVATE_EXE_READONLY TEXT("Reserved Space Exec Read Only")
|
||
|
#define PN_PROCESS_PRIVATE_EXE_READWRITE TEXT("Reserved Space Exec Read/Write")
|
||
|
#define PN_PROCESS_PRIVATE_EXE_WRITECOPY TEXT("Reserved Space Exec Write Copy")
|
||
|
|
||
|
|
||
|
#define PN_PROCESS_MAPPED_NOACCESS TEXT("Mapped Space No Access")
|
||
|
#define PN_PROCESS_MAPPED_READONLY TEXT("Mapped Space Read Only")
|
||
|
#define PN_PROCESS_MAPPED_READWRITE TEXT("Mapped Space Read/Write")
|
||
|
#define PN_PROCESS_MAPPED_WRITECOPY TEXT("Mapped Space Write Copy")
|
||
|
#define PN_PROCESS_MAPPED_EXECUTABLE TEXT("Mapped Space Executable")
|
||
|
#define PN_PROCESS_MAPPED_EXE_READONLY TEXT("Mapped Space Exec Read Only")
|
||
|
#define PN_PROCESS_MAPPED_EXE_READWRITE TEXT("Mapped Space Exec Read/Write")
|
||
|
#define PN_PROCESS_MAPPED_EXE_WRITECOPY TEXT("Mapped Space Exec Write Copy")
|
||
|
|
||
|
|
||
|
#define PN_PROCESS_IMAGE_NOACCESS TEXT("Image Space No Access")
|
||
|
#define PN_PROCESS_IMAGE_READONLY TEXT("Image Space Read Only")
|
||
|
#define PN_PROCESS_IMAGE_READWRITE TEXT("Image Space Read/Write")
|
||
|
#define PN_PROCESS_IMAGE_WRITECOPY TEXT("Image Space Write Copy")
|
||
|
#define PN_PROCESS_IMAGE_EXECUTABLE TEXT("Image Space Executable")
|
||
|
#define PN_PROCESS_IMAGE_EXE_READONLY TEXT("Image Space Exec Read Only")
|
||
|
#define PN_PROCESS_IMAGE_EXE_READWRITE TEXT("Image Space Exec Read/Write")
|
||
|
#define PN_PROCESS_IMAGE_EXE_WRITECOPY TEXT("Image Space Exec Write Copy")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
DWORD PX_PROCESS;
|
||
|
DWORD PX_PROCESS_CPU;
|
||
|
DWORD PX_PROCESS_PRIV;
|
||
|
DWORD PX_PROCESS_USER;
|
||
|
DWORD PX_PROCESS_WORKING_SET;
|
||
|
DWORD PX_PROCESS_PEAK_WS;
|
||
|
DWORD PX_PROCESS_PRIO;
|
||
|
DWORD PX_PROCESS_ELAPSE;
|
||
|
DWORD PX_PROCESS_ID;
|
||
|
DWORD PX_PROCESS_PRIVATE_PAGE;
|
||
|
DWORD PX_PROCESS_VIRTUAL_SIZE;
|
||
|
DWORD PX_PROCESS_PEAK_VS;
|
||
|
DWORD PX_PROCESS_FAULT_COUNT;
|
||
|
DWORD PX_PROCESS_PAGED_POOL_QUOTA;
|
||
|
DWORD PX_PROCESS_PEAK_PAGED_POOL_QUOTA;
|
||
|
DWORD PX_PROCESS_NONPAGED_POOL_QUOTA;
|
||
|
DWORD PX_PROCESS_PEAK_PAGED_POOL;
|
||
|
DWORD PX_PROCESS_PEAK_NONPAGED_POOL;
|
||
|
DWORD PX_PROCESS_CUR_PAGED_POOL;
|
||
|
DWORD PX_PROCESS_CUR_NONPAGED_POOL;
|
||
|
DWORD PX_PROCESS_PAGED_POOL_LIMIT;
|
||
|
DWORD PX_PROCESS_NONPAGED_POOL_LIMIT;
|
||
|
|
||
|
|
||
|
DWORD PX_THREAD;
|
||
|
DWORD PX_THREAD_CPU;
|
||
|
DWORD PX_THREAD_PRIV;
|
||
|
DWORD PX_THREAD_USER;
|
||
|
DWORD PX_THREAD_START;
|
||
|
DWORD PX_THREAD_SWITCHES;
|
||
|
DWORD PX_THREAD_PRIO;
|
||
|
DWORD PX_THREAD_BASE_PRIO;
|
||
|
DWORD PX_THREAD_ELAPSE;
|
||
|
|
||
|
DWORD PX_THREAD_DETAILS;
|
||
|
DWORD PX_THREAD_PC;
|
||
|
|
||
|
DWORD PX_IMAGE;
|
||
|
DWORD PX_IMAGE_NOACCESS;
|
||
|
DWORD PX_IMAGE_READONLY;
|
||
|
DWORD PX_IMAGE_READWRITE;
|
||
|
DWORD PX_IMAGE_WRITECOPY;
|
||
|
DWORD PX_IMAGE_EXECUTABLE;
|
||
|
DWORD PX_IMAGE_EXE_READONLY;
|
||
|
DWORD PX_IMAGE_EXE_READWRITE;
|
||
|
DWORD PX_IMAGE_EXE_WRITECOPY;
|
||
|
|
||
|
|
||
|
DWORD PX_PROCESS_ADDRESS_SPACE;
|
||
|
DWORD PX_PROCESS_PRIVATE_NOACCESS;
|
||
|
DWORD PX_PROCESS_PRIVATE_READONLY;
|
||
|
DWORD PX_PROCESS_PRIVATE_READWRITE;
|
||
|
DWORD PX_PROCESS_PRIVATE_WRITECOPY;
|
||
|
DWORD PX_PROCESS_PRIVATE_EXECUTABLE;
|
||
|
DWORD PX_PROCESS_PRIVATE_EXE_READONLY;
|
||
|
DWORD PX_PROCESS_PRIVATE_EXE_READWRITE;
|
||
|
DWORD PX_PROCESS_PRIVATE_EXE_WRITECOPY;
|
||
|
|
||
|
|
||
|
DWORD PX_PROCESS_MAPPED_NOACCESS;
|
||
|
DWORD PX_PROCESS_MAPPED_READONLY;
|
||
|
DWORD PX_PROCESS_MAPPED_READWRITE;
|
||
|
DWORD PX_PROCESS_MAPPED_WRITECOPY;
|
||
|
DWORD PX_PROCESS_MAPPED_EXECUTABLE;
|
||
|
DWORD PX_PROCESS_MAPPED_EXE_READONLY;
|
||
|
DWORD PX_PROCESS_MAPPED_EXE_READWRITE;
|
||
|
DWORD PX_PROCESS_MAPPED_EXE_WRITECOPY;
|
||
|
|
||
|
|
||
|
DWORD PX_PROCESS_IMAGE_NOACCESS;
|
||
|
DWORD PX_PROCESS_IMAGE_READONLY;
|
||
|
DWORD PX_PROCESS_IMAGE_READWRITE;
|
||
|
DWORD PX_PROCESS_IMAGE_WRITECOPY;
|
||
|
DWORD PX_PROCESS_IMAGE_EXECUTABLE;
|
||
|
DWORD PX_PROCESS_IMAGE_EXE_READONLY;
|
||
|
DWORD PX_PROCESS_IMAGE_EXE_READWRITE;
|
||
|
DWORD PX_PROCESS_IMAGE_EXE_WRITECOPY;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct _TIME_FIELD
|
||
|
TIME_FIELD,
|
||
|
*PTIME_FIELD;
|
||
|
|
||
|
struct _TIME_FIELD
|
||
|
{
|
||
|
INT Hours;
|
||
|
INT Mins;
|
||
|
INT Secs;
|
||
|
INT mSecs;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
void RefreshPviewDlgThreadPC
|
||
|
(HWND hPviewDlg,
|
||
|
LPTSTR szProcessName,
|
||
|
LPTSTR szThreadName,
|
||
|
PPERF_OBJECT pThreadDetailsObject,
|
||
|
PPERF_DATA pCostlyData);
|
||
|
|
||
|
|
||
|
BOOL RefreshMemoryDlg
|
||
|
(HWND hMemDlg,
|
||
|
PPERF_INSTANCE pProcessInstance,
|
||
|
PPERF_OBJECT pProcessObject,
|
||
|
PPERF_OBJECT pAddressObject,
|
||
|
PPERF_OBJECT pImageObject);
|
||
|
|
||
|
|
||
|
void RefreshMemoryDlgImage
|
||
|
(HWND hMemDlg,
|
||
|
DWORD dwIndex,
|
||
|
PPERF_OBJECT pImageObject);
|
||
|
|
||
|
|
||
|
void RefreshPviewDlgMemoryData
|
||
|
(HWND hPviewDlg,
|
||
|
PPERF_INSTANCE pProcessInstance,
|
||
|
PPERF_OBJECT pProcessObject,
|
||
|
PPERF_OBJECT pAddressObject);
|
||
|
|
||
|
|
||
|
PPERF_DATA RefreshPerfData
|
||
|
(HKEY hPerfKey,
|
||
|
LPTSTR szObjectIndex,
|
||
|
PPERF_DATA pData,
|
||
|
DWORD *pDataSize);
|
||
|
|
||
|
|
||
|
void RefreshProcessList
|
||
|
(HWND hProcessList,
|
||
|
PPERF_OBJECT pObject);
|
||
|
|
||
|
|
||
|
void RefreshProcessData
|
||
|
(HWND hWnd,
|
||
|
PPERF_OBJECT pObject,
|
||
|
DWORD ProcessIndex);
|
||
|
|
||
|
|
||
|
void RefreshThreadList
|
||
|
(HWND hThreadList,
|
||
|
PPERF_OBJECT pObject,
|
||
|
DWORD ParentIndex);
|
||
|
|
||
|
|
||
|
void RefreshThreadData
|
||
|
(HWND hWnd,
|
||
|
PPERF_OBJECT pThreadObj,
|
||
|
DWORD ThreadIndex,
|
||
|
PPERF_OBJECT pProcessObj,
|
||
|
PPERF_INSTANCE pProcessInst);
|
||
|
|
||
|
|
||
|
WORD ProcessPriority
|
||
|
(PPERF_OBJECT pObject,
|
||
|
PPERF_INSTANCE pInstance);
|