From 01716b5ded881d602bcc3260f946ba4c15432160 Mon Sep 17 00:00:00 2001
From: Erich Hoover <ehoover@mines.edu>
Date: Mon, 18 Feb 2013 16:02:27 -0700
Subject: [PATCH] pdh: Support the 'Processor' object string.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=33018
---
 dlls/pdh/pdh_main.c  | 3 +++
 dlls/pdh/tests/pdh.c | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c
index 7ef91f1..ef69e45 100644
--- a/dlls/pdh/pdh_main.c
+++ b/dlls/pdh/pdh_main.c
@@ -178,6 +178,8 @@ struct source
 static const WCHAR path_processor_time[] =
     {'\\','P','r','o','c','e','s','s','o','r','(','_','T','o','t','a','l',')',
      '\\','%',' ','P','r','o','c','e','s','s','o','r',' ','T','i','m','e',0};
+static const WCHAR path_processor[] =
+    {'\\','P','r','o','c','e','s','s','o','r',0};
 static const WCHAR path_uptime[] =
     {'\\','S','y','s','t','e','m', '\\', 'S','y','s','t','e','m',' ','U','p',' ','T','i','m','e',0};
 
@@ -204,6 +206,7 @@ static void CALLBACK collect_uptime( struct counter *counter )
 static const struct source counter_sources[] =
 {
     { 6,    path_processor_time,    collect_processor_time,     TYPE_PROCESSOR_TIME,    -5,     10000000 },
+    { 238,  path_processor,         NULL,                       0,                       0,     0 },
     { 674,  path_uptime,            collect_uptime,             TYPE_UPTIME,            -3,     1000 }
 };
 
diff --git a/dlls/pdh/tests/pdh.c b/dlls/pdh/tests/pdh.c
index 0a17906..a9613e2 100644
--- a/dlls/pdh/tests/pdh.c
+++ b/dlls/pdh/tests/pdh.c
@@ -674,6 +674,13 @@ static void test_PdhLookupPerfNameByIndexA( void )
     ok(size == sizeof("% Processor Time"), "PdhLookupPerfNameByIndexA failed %d\n", size);
 
     size = sizeof(buffer);
+    ret = PdhLookupPerfNameByIndexA( NULL, 238, buffer, &size );
+    ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
+    ok(!lstrcmpA( buffer, "Processor" ),
+       "PdhLookupPerfNameByIndexA failed, got %s expected \'Processor\'\n", buffer);
+    ok(size == sizeof("Processor"), "PdhLookupPerfNameByIndexA failed %d\n", size);
+
+    size = sizeof(buffer);
     ret = PdhLookupPerfNameByIndexA( NULL, 674, NULL, &size );
     ok(ret == PDH_INVALID_ARGUMENT ||
        ret == PDH_MORE_DATA, /* win2k3 */
-- 
1.9.1

