#include "pch.h" // // Global list of objects. // PERF_OBJECT_MAP gPerfObject[MAX_PERF_OBJECTS]; DWORD gdwNumberOfPerfObjects = 0; DWORD dwIndex; void AddObject(const wchar_t * szObject, DWORD dwCounters, BOOL * rgIsPerSecond) { DWORD i; PPERF_OBJECT_MAP pMap; pMap = &gPerfObject[gdwNumberOfPerfObjects++]; wcscpy(pMap->mszProgramName, szObject); pMap->mPerfId = dwIndex; pMap->mdwCounters = dwCounters; dwIndex += 2; pMap->mCounter = (PPERF_COUNTER_MAP) HeapAlloc(GetProcessHeap(), 0, sizeof(PERF_COUNTER_MAP) * pMap->mdwCounters); for (i = 0; i < dwCounters; i++) { pMap->mCounter[i].mPerfId = dwIndex; pMap->mCounter[i].mdwCounterType = rgIsPerSecond[i] ? PERF_COUNTER_COUNTER : PERF_COUNTER_RAWCOUNT; dwIndex += 2; } } BOOL LoadPerfObjects() { dwIndex = 0; // ********** AllSrv *********** BOOL rgfPerSecondServer[] = {0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}; AddObject(L"AllSrv", sizeof(rgfPerSecondServer) / sizeof(rgfPerSecondServer[0]), rgfPerSecondServer); // ********** AllLobby *********** BOOL rgfPerSecondLobby[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; AddObject(L"AllLobby", sizeof(rgfPerSecondLobby) / sizeof(rgfPerSecondLobby[0]), rgfPerSecondLobby); // ********** AllLobbyPerServer *********** BOOL rgfPerSecondLobbyPerServer[] = {0, 0, 0}; AddObject(L"AllLobbyPerServer", 3, rgfPerSecondLobbyPerServer); return(TRUE); }