85 lines
1.6 KiB
C++
85 lines
1.6 KiB
C++
// PdhStress.cpp : Defines the entry point for the console application.
|
|
//
|
|
|
|
#define _WIN32_DCOM
|
|
|
|
#define WIN32_LEAN_AND_MEAN 1
|
|
#include <stdio.h>
|
|
#include <windows.h>
|
|
#include <winperf.h>
|
|
#include <malloc.h>
|
|
#include <stdlib.h>
|
|
#include <tchar.h>
|
|
#include <wchar.h>
|
|
#include <pdh.h>
|
|
#include <OAIDL.H>
|
|
#include <comdef.H>
|
|
#include "stdafx.h"
|
|
#include "Stuff.h"
|
|
#include "pdhtest.h"
|
|
|
|
CRITICAL_SECTION g_cs;
|
|
|
|
extern "C" void wmain(int argc, wchar_t *argv[])
|
|
{
|
|
WCHAR c;
|
|
WCHAR wcsFileName[1024] = { 0 };
|
|
WCHAR wcsMachineName[512] = { 0 };
|
|
bool bDontStop = TRUE;
|
|
|
|
if (argc == 1)
|
|
{
|
|
// wprintf(L"\nUsage:\n\tflag 'l'\t Log file path and name\n\tflag 'm'\t Machine name [optional - default local machine] \n\nExample: \'pdhtest -l test.log\'\n");
|
|
// return;
|
|
|
|
wcscpy(wcsFileName, L"PdhStress.log");
|
|
}
|
|
|
|
//read all the cmdline args and set the file name params
|
|
while (argc > 1 && ((*++argv)[0]== '-') || (*argv[0]== '/'))
|
|
{
|
|
--argc;
|
|
while (c=*++argv[0])
|
|
{
|
|
switch (c)
|
|
{
|
|
|
|
case 'l':
|
|
wcscpy(wcsFileName, (*++argv));
|
|
--argc;
|
|
break;
|
|
|
|
case 'm':
|
|
wcscpy(wcsMachineName, (*++argv));
|
|
--argc;
|
|
break;
|
|
|
|
default: //usage
|
|
wprintf(L"\nUsage:\n\tflag 'l'\t Log file path and name\n\tflag 'm'\t Machine name [optional - default local machine] \n\nExample: \'pdhtest -l test.log\'\n");
|
|
return;
|
|
break;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Create test object
|
|
CPdhtest *pCPdhtest = new CPdhtest((WCHAR *)_bstr_t(wcsFileName), wcsMachineName);
|
|
InitializeCriticalSection (&g_cs);
|
|
DWORD dwSleep = 20000;
|
|
|
|
do
|
|
{
|
|
pCPdhtest->Execute();
|
|
Sleep(dwSleep);
|
|
}
|
|
while(bDontStop);
|
|
|
|
DeleteCriticalSection(&g_cs);
|
|
|
|
delete pCPdhtest;
|
|
|
|
return ;
|
|
}
|