#define dwPerfDataIncrease 0x1000 #define AllocatePerfData() (MemoryAllocate (STARTING_SYSINFO_SIZE)) // Messages for the perf data collection thread #define WM_GET_PERF_DATA (WM_USER + 102) #define WM_FREE_SYSTEM (WM_USER + 103) // State for perf data collection #define WAIT_FOR_PERF_DATA 0x0010 #define PERF_DATA_READY 0x0011 #define PERF_DATA_FAIL 0x0012 #define IDLE_STATE 0x0013 //==========================================================================// // Macros // //==========================================================================// #define IsLocalComputer(a) (!lstrcmp(a,LocalComputerName)) #define IsRemoteComputer(a) (!IsLocalComputer(a)) //==========================================================================// // Exported Functions // //==========================================================================// #if 0 PPERFOBJECT FirstObject (PPERFDATA pPerfData) ; PPERFOBJECT NextObject (PPERFOBJECT pObject) ; PERF_COUNTER_DEFINITION * FirstCounter( PERF_OBJECT_TYPE *pObjectDef) ; PERF_COUNTER_DEFINITION * NextCounter( PERF_COUNTER_DEFINITION *pCounterDef) ; #endif #define FirstObject(pPerfData) \ ((PPERFOBJECT) ((PBYTE) pPerfData + pPerfData->HeaderLength)) #define NextObject(pObject) \ ((PPERFOBJECT) ((PBYTE) pObject + pObject->TotalByteLength)) #define FirstCounter(pObjectDef) \ ((PERF_COUNTER_DEFINITION *) ((PCHAR)pObjectDef + pObjectDef->HeaderLength)) #define NextCounter(pCounterDef) \ ((PERF_COUNTER_DEFINITION *) ((PCHAR)pCounterDef + pCounterDef->ByteLength)) void GetInstanceNameStr (PPERFINSTANCEDEF pInstance, LPTSTR lpszInstance); LPTSTR GetInstanceName (PPERFINSTANCEDEF pInstance) ; void GetPerfComputerName(PPERFDATA pPerfData, LPTSTR szComputerName) ; PERF_INSTANCE_DEFINITION *GetInstanceByName( PERF_DATA_BLOCK *pDataBlock, PERF_OBJECT_TYPE UNALIGNED *pObjectDef, LPTSTR pInstanceName, LPTSTR pParentName, DWORD dwIndex) ; PERF_INSTANCE_DEFINITION *GetInstanceByUniqueID( PERF_OBJECT_TYPE UNALIGNED *pObjectDef, LONG UniqueID, DWORD dwIndex) ; HKEY OpenSystemPerfData (IN LPCTSTR lpszSystem) ; LONG GetSystemPerfData ( IN HKEY hKeySystem, IN LPTSTR lpszValue, OUT PPERFDATA pPerfData, OUT SIZE_T * pdwPerfDataLen ); BOOL CloseSystemPerfData (HKEY hKeySystem) ; int CBLoadObjects (HWND hWndCB, PPERFDATA pPerfData, PPERFSYSTEM pSysInfo, DWORD dwDetailLevel, LPTSTR lpszDefaultObject, BOOL bIncludeAll) ; int LBLoadObjects (HWND hWndCB, PPERFDATA pPerfData, PPERFSYSTEM pSysInfo, DWORD dwDetailLevel, LPTSTR lpszDefaultObject, BOOL bIncludeAll) ; BOOL UpdateSystemData (PPERFSYSTEM pSystem, PPERFDATA *ppPerfData) ; BOOL UpdateLinesForSystem (LPTSTR lpszSystem, PPERFDATA pPerfData, PLINE pLineFirst, PPERFSYSTEM pSystem) ; BOOL FailedLinesForSystem (LPTSTR lpszSystem, PPERFDATA pPerfData, PLINE pLineFirst) ; BOOL UpdateLines (PPPERFSYSTEM ppSystemFirst, PLINE pLineFirst) ; BOOL PerfDataInitializeInstance (void) ; DWORD QueryPerformanceName( PPERFSYSTEM pSysInfo, DWORD dwTitleIndex, LANGID LangID, DWORD cbTitle, LPTSTR lpTitle, BOOL Help ); PERF_INSTANCE_DEFINITION * FirstInstance( PERF_OBJECT_TYPE UNALIGNED *pObjectDef) ; PERF_INSTANCE_DEFINITION * NextInstance( PERF_INSTANCE_DEFINITION *pInstDef) ; int CounterIndex (PPERFCOUNTERDEF pCounterToFind, PERF_OBJECT_TYPE UNALIGNED *pObject) ; DWORD GetSystemNames(PPERFSYSTEM pSysInfo) ; PERF_OBJECT_TYPE *GetObjectDefByTitleIndex( PERF_DATA_BLOCK *pDataBlock, DWORD ObjectTypeTitleIndex) ; PERF_OBJECT_TYPE *GetObjectDefByName( PPERFSYSTEM pSystem, PERF_DATA_BLOCK *pDataBlock, LPTSTR pObjectName) ; DWORD GetObjectIdByName( PPERFSYSTEM pSystem, PERF_DATA_BLOCK *pDataBlock, LPTSTR pObjectName) ; LPTSTR InstanceName( PERF_INSTANCE_DEFINITION *pInstDef) ; void PerfDataThread (PPERFSYSTEM pSystem) ;