#include "pch.h"
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;
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);
BOOL rgfPerSecondLobby[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
AddObject(L"AllLobby", sizeof(rgfPerSecondLobby) / sizeof(rgfPerSecondLobby[0]), rgfPerSecondLobby);
BOOL rgfPerSecondLobbyPerServer[] = {0, 0, 0};
AddObject(L"AllLobbyPerServer", 3, rgfPerSecondLobbyPerServer);
return(TRUE);
}