#include <windows.h>
#include <stdio.h>
#include <pdh.h>
#include <pdhmsg.h>
#pragma comment(lib, "pdh.lib")
BOOL DiskIOMon()
{
//CONST PWSTR COUNTER_PATH = L"\\Processor(0)\\% Processor Time";
//CONST PWSTR COUNTER_PATH = L"\\Processor(_Total)\\% Processor Time";
//CONST PWSTR COUNTER_PATH = L"\\Process(*)\\% Processor Time";
//CONST PWSTR COUNTER_PATH = L"\\Process(QQ)\\% Processor Time";
CONST PWSTR COUNTER_PATH = L"\\PhysicalDisk(_Total)\\% Disk Time";
//CONST PWSTR COUNTER_PATH = L"\\PhysicalDisk(_Total)\\Current Disk Queue Length";
//CONST PWSTR COUNTER_PATH = L"\\LogicalDisk(_Total)\\% Free Space";
HQUERY hQuery = NULL;
HCOUNTER hCounter = NULL;
PDH_STATUS status = ERROR_SUCCESS;
DWORD dwFormat = PDH_FMT_DOUBLE;
PDH_FMT_COUNTERVALUE ItemBuffer;
// Opens the log file that Writein Performance Data to a Log File
// example created.
status = PdhOpenQuery(0, 0, &hQuery);
if (ERROR_SUCCESS != status)
{
wprintf(L"PdhOpenQuery failed with 0x%x\n", status);
goto cleanup;
}
// Add the same counter used when writing the log file.