ReactOS 0.4.15-dev-7924-g5949c20
pdh.c File Reference
#include <stdio.h>
#include "windows.h"
#include "pdh.h"
#include "pdhmsg.h"
#include "wine/test.h"
Include dependency graph for pdh.c:

Go to the source code of this file.

Macros

#define GETFUNCPTR(func)   p##func = (void *)GetProcAddress( pdh, #func );
 

Functions

static PDH_STATUS (WINAPI *pPdhAddEnglishCounterA)(PDH_HQUERY
 
static BOOL is_lang_english (void)
 
static void init_function_ptrs (void)
 
static void test_PdhOpenQueryA (void)
 
static void test_PdhOpenQueryW (void)
 
static void test_PdhAddCounterA (void)
 
static void test_PdhAddCounterW (void)
 
static void test_PdhAddEnglishCounterA (void)
 
static void test_PdhAddEnglishCounterW (void)
 
static void test_PdhCollectQueryDataWithTime (void)
 
static void test_PdhGetFormattedCounterValue (void)
 
static void test_PdhGetRawCounterValue (void)
 
static void test_PdhSetCounterScaleFactor (void)
 
static void test_PdhGetCounterTimeBase (void)
 
static void test_PdhGetCounterInfoA (void)
 
static void test_PdhGetCounterInfoW (void)
 
static void test_PdhLookupPerfIndexByNameA (void)
 
static void test_PdhLookupPerfIndexByNameW (void)
 
static void test_PdhLookupPerfNameByIndexA (void)
 
static void test_PdhLookupPerfNameByIndexW (void)
 
static void test_PdhValidatePathA (void)
 
static void test_PdhValidatePathW (void)
 
static void test_PdhValidatePathExA (void)
 
static void test_PdhValidatePathExW (void)
 
static void test_PdhCollectQueryDataEx (void)
 
static void test_PdhMakeCounterPathA (void)
 
static void test_PdhGetDllVersion (void)
 
 START_TEST (pdh)
 

Variables

static HMODULE pdh
 
static LPCSTR
 
static DWORD_PTR
 
static PDH_HCOUNTER *static LPCWSTR
 
static const WCHAR processor_time []
 
static const WCHAR uptime []
 
static const WCHAR system_uptime []
 
static const WCHAR nonexistent_counter []
 
static const WCHAR percentage_processor_time []
 

Macro Definition Documentation

◆ GETFUNCPTR

#define GETFUNCPTR (   func)    p##func = (void *)GetProcAddress( pdh, #func );

Definition at line 38 of file pdh.c.

Function Documentation

◆ init_function_ptrs()

static void init_function_ptrs ( void  )
static

Definition at line 64 of file pdh.c.

65{
66 pdh = GetModuleHandleA( "pdh" );
72}
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
static HMODULE pdh
Definition: pdh.c:30
#define GETFUNCPTR(func)
Definition: pdh.c:38
PDH_STATUS WINAPI PdhValidatePathExW(PDH_HLOG source, LPCWSTR path)
Definition: pdh_main.c:1122
PDH_STATUS WINAPI PdhAddEnglishCounterW(PDH_HQUERY query, LPCWSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
Definition: pdh_main.c:326
PDH_STATUS WINAPI PdhCollectQueryDataWithTime(PDH_HQUERY handle, LONGLONG *timestamp)
Definition: pdh_main.c:579
PDH_STATUS WINAPI PdhValidatePathExA(PDH_HLOG source, LPCSTR path)
Definition: pdh_main.c:1107
PDH_STATUS WINAPI PdhAddEnglishCounterA(PDH_HQUERY query, LPCSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
Definition: pdh_main.c:314

Referenced by START_TEST().

◆ is_lang_english()

static BOOL is_lang_english ( void  )
static

Definition at line 44 of file pdh.c.

45{
46 static HMODULE hkernel32 = NULL;
47 static LANGID (WINAPI *pGetThreadUILanguage)(void) = NULL;
48 static LANGID (WINAPI *pGetUserDefaultUILanguage)(void) = NULL;
49
50 if (!hkernel32)
51 {
52 hkernel32 = GetModuleHandleA("kernel32.dll");
53 pGetThreadUILanguage = (void*)GetProcAddress(hkernel32, "GetThreadUILanguage");
54 pGetUserDefaultUILanguage = (void*)GetProcAddress(hkernel32, "GetUserDefaultUILanguage");
55 }
56 if (pGetThreadUILanguage)
57 return PRIMARYLANGID(pGetThreadUILanguage()) == LANG_ENGLISH;
58 if (pGetUserDefaultUILanguage)
59 return PRIMARYLANGID(pGetUserDefaultUILanguage()) == LANG_ENGLISH;
60
62}
#define NULL
Definition: types.h:112
#define GetProcAddress(x, y)
Definition: compat.h:753
LANGID WINAPI GetUserDefaultLangID(void)
Definition: lang.c:744
USHORT LANGID
Definition: mui.h:9
static HINSTANCE hkernel32
Definition: process.c:66
#define LANG_ENGLISH
Definition: nls.h:52
#define PRIMARYLANGID(l)
Definition: nls.h:16
#define WINAPI
Definition: msvc.h:6

Referenced by START_TEST().

◆ PDH_STATUS()

static PDH_STATUS ( WINAPI pPdhAddEnglishCounterA)
static

◆ START_TEST()

START_TEST ( pdh  )

Definition at line 994 of file pdh.c.

995{
996 if (!is_lang_english())
997 {
998 skip("An English UI is needed for the pdh tests\n");
999 return;
1000 }
1002
1005
1008
1009 if (pPdhAddEnglishCounterA) test_PdhAddEnglishCounterA();
1010 if (pPdhAddEnglishCounterW) test_PdhAddEnglishCounterW();
1011 if (pPdhCollectQueryDataWithTime) test_PdhCollectQueryDataWithTime();
1012
1017
1020
1023
1026
1029
1030 if (pPdhValidatePathExA) test_PdhValidatePathExA();
1031 if (pPdhValidatePathExW) test_PdhValidatePathExW();
1032
1036}
#define skip(...)
Definition: atltest.h:64
static void test_PdhSetCounterScaleFactor(void)
Definition: pdh.c:431
static void test_PdhAddEnglishCounterA(void)
Definition: pdh.c:233
static void test_PdhCollectQueryDataWithTime(void)
Definition: pdh.c:315
static void test_PdhGetFormattedCounterValue(void)
Definition: pdh.c:347
static void test_PdhCollectQueryDataEx(void)
Definition: pdh.c:825
static void test_PdhOpenQueryW(void)
Definition: pdh.c:111
static void test_PdhValidatePathExA(void)
Definition: pdh.c:776
static void test_PdhLookupPerfIndexByNameA(void)
Definition: pdh.c:602
static void test_PdhGetCounterInfoW(void)
Definition: pdh.c:548
static void test_PdhValidatePathA(void)
Definition: pdh.c:727
static BOOL is_lang_english(void)
Definition: pdh.c:44
static void init_function_ptrs(void)
Definition: pdh.c:64
static void test_PdhOpenQueryA(void)
Definition: pdh.c:87
static void test_PdhValidatePathExW(void)
Definition: pdh.c:799
static void test_PdhGetRawCounterValue(void)
Definition: pdh.c:397
static void test_PdhGetDllVersion(void)
Definition: pdh.c:972
static void test_PdhAddCounterA(void)
Definition: pdh.c:135
static void test_PdhAddCounterW(void)
Definition: pdh.c:184
static void test_PdhGetCounterInfoA(void)
Definition: pdh.c:494
static void test_PdhLookupPerfIndexByNameW(void)
Definition: pdh.c:628
static void test_PdhAddEnglishCounterW(void)
Definition: pdh.c:274
static void test_PdhLookupPerfNameByIndexW(void)
Definition: pdh.c:697
static void test_PdhValidatePathW(void)
Definition: pdh.c:750
static void test_PdhMakeCounterPathA(void)
Definition: pdh.c:875
static void test_PdhLookupPerfNameByIndexA(void)
Definition: pdh.c:656
static void test_PdhGetCounterTimeBase(void)
Definition: pdh.c:465

◆ test_PdhAddCounterA()

static void test_PdhAddCounterA ( void  )
static

Definition at line 135 of file pdh.c.

136{
140
141 ret = PdhOpenQueryA( NULL, 0, &query );
142 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
143
144 ret = PdhAddCounterA( NULL, "\\System\\System Up Time", 0, NULL );
145 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterA failed 0x%08x\n", ret);
146
147 ret = PdhAddCounterA( NULL, "\\System\\System Up Time", 0, &counter );
148 ok(ret == PDH_INVALID_HANDLE, "PdhAddCounterA failed 0x%08x\n", ret);
149
151 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterA failed 0x%08x\n", ret);
152
153 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, NULL );
154 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterA failed 0x%08x\n", ret);
155
156 ret = PdhAddCounterA( query, "\\System\\Nonexistent Counter", 0, &counter );
158 broken(ret == PDH_INVALID_PATH), /* Win2K */
159 "PdhAddCounterA failed 0x%08x\n", ret);
160 ok(!counter, "PdhAddCounterA failed %p\n", counter);
161
162 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
163 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
164
166 ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryData failed 0x%08x\n", ret);
167
169 ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryData failed 0x%08x\n", ret);
170
172 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
173
175 ok(ret == PDH_INVALID_HANDLE, "PdhRemoveCounter failed 0x%08x\n", ret);
176
178 ok(ret == ERROR_SUCCESS, "PdhRemoveCounter failed 0x%08x\n", ret);
179
181 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
182}
#define broken(x)
Definition: _sntprintf.h:21
#define ok(value,...)
Definition: atltest.h:57
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG PDH_STATUS
Definition: pdh.h:35
PDH_STATUS WINAPI PdhRemoveCounter(PDH_HCOUNTER handle)
Definition: pdh_main.c:1001
PDH_STATUS WINAPI PdhAddCounterA(PDH_HQUERY query, LPCSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
Definition: pdh_main.c:242
PDH_STATUS WINAPI PdhOpenQueryA(LPCSTR source, DWORD_PTR userdata, PDH_HQUERY *query)
Definition: pdh_main.c:957
PDH_STATUS WINAPI PdhCollectQueryData(PDH_HQUERY handle)
Definition: pdh_main.c:464
PDH_STATUS WINAPI PdhCloseQuery(PDH_HQUERY handle)
Definition: pdh_main.c:397
#define PDH_INVALID_HANDLE
Definition: pdhmsg.h:45
#define PDH_INVALID_ARGUMENT
Definition: pdhmsg.h:46
#define PDH_INVALID_PATH
Definition: pdhmsg.h:53
#define PDH_CSTATUS_NO_COUNTER
Definition: pdhmsg.h:42
int ret

Referenced by START_TEST().

◆ test_PdhAddCounterW()

static void test_PdhAddCounterW ( void  )
static

Definition at line 184 of file pdh.c.

185{
189
190 ret = PdhOpenQueryW( NULL, 0, &query );
191 ok(ret == ERROR_SUCCESS, "PdhOpenQueryW failed 0x%08x\n", ret);
192
194 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterW failed 0x%08x\n", ret);
195
197 ok(ret == PDH_INVALID_HANDLE, "PdhAddCounterW failed 0x%08x\n", ret);
198
200 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterW failed 0x%08x\n", ret);
201
203 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddCounterW failed 0x%08x\n", ret);
204
207 broken(ret == PDH_INVALID_PATH), /* Win2K */
208 "PdhAddCounterW failed 0x%08x\n", ret);
209 ok(!counter, "PdhAddCounterW failed %p\n", counter);
210
212 ok(ret == ERROR_SUCCESS, "PdhAddCounterW failed 0x%08x\n", ret);
213
215 ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryData failed 0x%08x\n", ret);
216
218 ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryData failed 0x%08x\n", ret);
219
221 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
222
224 ok(ret == PDH_INVALID_HANDLE, "PdhRemoveCounter failed 0x%08x\n", ret);
225
227 ok(ret == ERROR_SUCCESS, "PdhRemoveCounter failed 0x%08x\n", ret);
228
230 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
231}
static const WCHAR nonexistent_counter[]
Definition: pdh.c:81
static const WCHAR percentage_processor_time[]
Definition: pdh.c:83
PDH_STATUS WINAPI PdhAddCounterW(PDH_HQUERY hquery, LPCWSTR path, DWORD_PTR userdata, PDH_HCOUNTER *hcounter)
Definition: pdh_main.c:264
PDH_STATUS WINAPI PdhOpenQueryW(LPCWSTR source, DWORD_PTR userdata, PDH_HQUERY *handle)
Definition: pdh_main.c:975

Referenced by START_TEST().

◆ test_PdhAddEnglishCounterA()

static void test_PdhAddEnglishCounterA ( void  )
static

Definition at line 233 of file pdh.c.

234{
238
239 ret = PdhOpenQueryA( NULL, 0, &query );
240 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
241
243 ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret);
244
245 ret = pPdhAddEnglishCounterA( NULL, "\\System\\System Up Time", 0, NULL );
246 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
247
248 ret = pPdhAddEnglishCounterA( NULL, "\\System\\System Up Time", 0, &counter );
249 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
250
251 ret = pPdhAddEnglishCounterA( query, NULL, 0, &counter );
252 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
253
254 ret = pPdhAddEnglishCounterA( query, "\\System\\System Up Time", 0, NULL );
255 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
256
257 ret = pPdhAddEnglishCounterA( query, "\\System\\System Down Time", 0, &counter );
258 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
259 ok(!counter, "PdhAddEnglishCounterA failed %p\n", counter);
260
261 ret = pPdhAddEnglishCounterA( query, "\\System\\System Up Time", 0, &counter );
262 ok(ret == ERROR_SUCCESS, "PdhAddEnglishCounterA failed 0x%08x\n", ret);
263
265 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
266
268 ok(ret == ERROR_SUCCESS, "PdhRemoveCounter failed 0x%08x\n", ret);
269
271 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
272}
#define PDH_NO_DATA
Definition: pdhmsg.h:31

Referenced by START_TEST().

◆ test_PdhAddEnglishCounterW()

static void test_PdhAddEnglishCounterW ( void  )
static

Definition at line 274 of file pdh.c.

275{
279
280 ret = PdhOpenQueryW( NULL, 0, &query );
281 ok(ret == ERROR_SUCCESS, "PdhOpenQueryW failed 0x%08x\n", ret);
282
284 ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret);
285
286 ret = pPdhAddEnglishCounterW( NULL, system_uptime, 0, NULL );
287 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
288
289 ret = pPdhAddEnglishCounterW( NULL, system_uptime, 0, &counter );
290 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
291
292 ret = pPdhAddEnglishCounterW( query, NULL, 0, &counter );
293 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
294
295 ret = pPdhAddEnglishCounterW( query, system_uptime, 0, NULL );
296 ok(ret == PDH_INVALID_ARGUMENT, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
297
298 ret = pPdhAddEnglishCounterW( query, nonexistent_counter, 0, &counter );
299 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
300 ok(!counter, "PdhAddEnglishCounterA failed %p\n", counter);
301
302 ret = pPdhAddEnglishCounterW( query, system_uptime, 0, &counter );
303 ok(ret == ERROR_SUCCESS, "PdhAddEnglishCounterW failed 0x%08x\n", ret);
304
306 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
307
309 ok(ret == ERROR_SUCCESS, "PdhRemoveCounter failed 0x%08x\n", ret);
310
312 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
313}
static const WCHAR system_uptime[]
Definition: pdh.c:79

Referenced by START_TEST().

◆ test_PdhCollectQueryDataEx()

static void test_PdhCollectQueryDataEx ( void  )
static

Definition at line 825 of file pdh.c.

826{
831 BOOL ret;
832 UINT i;
833
834 status = PdhOpenQueryA( NULL, 0, &query );
835 ok(status == ERROR_SUCCESS, "PdhOpenQuery failed 0x%08x\n", status);
836
837 event = CreateEventA( NULL, FALSE, FALSE, "winetest" );
838 ok(event != NULL, "CreateEvent failed\n");
839
840 status = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
841 ok(status == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", status);
842
844 ok(status == PDH_INVALID_HANDLE, "PdhCollectQueryDataEx failed 0x%08x\n", status);
845
847 ok(status == ERROR_SUCCESS, "PdhCollectQueryDataEx failed 0x%08x\n", status);
848
850 ok(status == ERROR_SUCCESS, "PdhCollectQueryDataEx failed 0x%08x\n", status);
851
853 ok(status == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", status);
854
855 for (i = 0; i < 3; i++)
856 {
858 {
860
862 ok(status == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", status);
863
864 trace( "uptime %s\n", wine_dbgstr_longlong(U(value).largeValue) );
865 }
866 }
867
868 ret = CloseHandle( event );
869 ok(ret, "CloseHandle failed\n");
870
872 ok(status == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", status);
873}
#define trace
Definition: atltest.h:70
#define U(x)
Definition: wordpad.c:45
#define FALSE
Definition: types.h:117
#define CloseHandle
Definition: compat.h:739
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
#define INFINITE
Definition: serial.h:102
unsigned int BOOL
Definition: ntddk_ex.h:94
struct _cl_event * event
Definition: glext.h:7739
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int UINT
Definition: ndis.h:50
#define PDH_FMT_LARGE
Definition: pdh.h:51
PDH_STATUS WINAPI PdhCollectQueryDataEx(PDH_HQUERY handle, DWORD interval, HANDLE event)
Definition: pdh_main.c:520
PDH_STATUS WINAPI PdhGetFormattedCounterValue(PDH_HCOUNTER handle, DWORD format, LPDWORD type, PPDH_FMT_COUNTERVALUE value)
Definition: pdh_main.c:772
Definition: ps.c:97
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventA(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCSTR lpName OPTIONAL)
Definition: synch.c:637
Definition: pdh_main.c:94
#define WAIT_OBJECT_0
Definition: winbase.h:406

Referenced by START_TEST().

◆ test_PdhCollectQueryDataWithTime()

static void test_PdhCollectQueryDataWithTime ( void  )
static

Definition at line 315 of file pdh.c.

316{
321
322 ret = PdhOpenQueryA( NULL, 0, &query );
323 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
324
326 ok(ret == PDH_NO_DATA, "PdhCollectQueryData failed 0x%08x\n", ret);
327
328 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
329 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
330
331 ret = pPdhCollectQueryDataWithTime( NULL, NULL );
332 ok(ret == PDH_INVALID_ARGUMENT, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret);
333
334 ret = pPdhCollectQueryDataWithTime( query, NULL );
335 ok(ret == PDH_INVALID_ARGUMENT, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret);
336
337 ret = pPdhCollectQueryDataWithTime( NULL, &time );
338 ok(ret == PDH_INVALID_HANDLE, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret);
339
340 ret = pPdhCollectQueryDataWithTime( query, &time );
341 ok(ret == ERROR_SUCCESS, "PdhCollectQueryDataWithTime failed 0x%08x\n", ret);
342
344 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
345}
__u16 time
Definition: mkdosfs.c:8
int64_t LONGLONG
Definition: typedefs.h:68

Referenced by START_TEST().

◆ test_PdhGetCounterInfoA()

static void test_PdhGetCounterInfoA ( void  )
static

Definition at line 494 of file pdh.c.

495{
500 DWORD size;
501
502 ret = PdhOpenQueryA( NULL, 0, &query );
503 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
504
505 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
506 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
507
509 ok(ret == PDH_INVALID_HANDLE || ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoA failed 0x%08x\n", ret);
510
512 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoA failed 0x%08x\n", ret);
513
515 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoA failed 0x%08x\n", ret);
516
517 size = sizeof(info) - 1;
519 ok(ret == PDH_MORE_DATA || ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoA failed 0x%08x\n", ret);
520
521 size = sizeof(info);
523 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoA failed 0x%08x\n", ret);
524 ok(size == sizeof(info), "PdhGetCounterInfoA failed %d\n", size);
525
527 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoA failed 0x%08x\n", ret);
528 ok(info.lScale == 0, "lScale %d\n", info.lScale);
529
531 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
532
534 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoA failed 0x%08x\n", ret);
535 ok(info.lScale == 0, "lScale %d\n", info.lScale);
536
538 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
539
541 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoA failed 0x%08x\n", ret);
542 ok(info.lScale == -5, "lScale %d\n", info.lScale);
543
545 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
546}
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
PDH_STATUS WINAPI PdhGetCounterInfoA(PDH_HCOUNTER handle, BOOLEAN text, LPDWORD size, PPDH_COUNTER_INFO_A info)
Definition: pdh_main.c:651
PDH_STATUS WINAPI PdhSetCounterScaleFactor(PDH_HCOUNTER handle, LONG factor)
Definition: pdh_main.c:1024
#define PDH_MORE_DATA
Definition: pdhmsg.h:28

Referenced by START_TEST().

◆ test_PdhGetCounterInfoW()

static void test_PdhGetCounterInfoW ( void  )
static

Definition at line 548 of file pdh.c.

549{
554 DWORD size;
555
556 ret = PdhOpenQueryW( NULL, 0, &query );
557 ok(ret == ERROR_SUCCESS, "PdhOpenQueryW failed 0x%08x\n", ret);
558
560 ok(ret == ERROR_SUCCESS, "PdhAddCounterW failed 0x%08x\n", ret);
561
563 ok(ret == PDH_INVALID_HANDLE || ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoW failed 0x%08x\n", ret);
564
566 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoW failed 0x%08x\n", ret);
567
569 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoW failed 0x%08x\n", ret);
570
571 size = sizeof(info) - 1;
573 ok(ret == PDH_MORE_DATA || ret == PDH_INVALID_ARGUMENT, "PdhGetCounterInfoW failed 0x%08x\n", ret);
574
575 size = sizeof(info);
577 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoW failed 0x%08x\n", ret);
578 ok(size == sizeof(info), "PdhGetCounterInfoW failed %d\n", size);
579
581 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoW failed 0x%08x\n", ret);
582 ok(info.lScale == 0, "lScale %d\n", info.lScale);
583
585 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
586
588 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoW failed 0x%08x\n", ret);
589 ok(info.lScale == 0, "lScale %d\n", info.lScale);
590
592 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
593
595 ok(ret == ERROR_SUCCESS, "PdhGetCounterInfoW failed 0x%08x\n", ret);
596 ok(info.lScale == -5, "lScale %d\n", info.lScale);
597
599 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
600}
PDH_STATUS WINAPI PdhGetCounterInfoW(PDH_HCOUNTER handle, BOOLEAN text, LPDWORD size, PPDH_COUNTER_INFO_W info)
Definition: pdh_main.c:693

Referenced by START_TEST().

◆ test_PdhGetCounterTimeBase()

static void test_PdhGetCounterTimeBase ( void  )
static

Definition at line 465 of file pdh.c.

466{
471
472 ret = PdhOpenQueryA( NULL, 0, &query );
473 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
474
475 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
476 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
477
479 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterTimeBase failed 0x%08x\n", ret);
480
482 ok(ret == PDH_INVALID_HANDLE, "PdhGetCounterTimeBase failed 0x%08x\n", ret);
483
485 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetCounterTimeBase failed 0x%08x\n", ret);
486
488 ok(ret == ERROR_SUCCESS, "PdhGetCounterTimeBase failed 0x%08x\n", ret);
489
491 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
492}
PDH_STATUS WINAPI PdhGetCounterTimeBase(PDH_HCOUNTER handle, LONGLONG *base)
Definition: pdh_main.c:735

Referenced by START_TEST().

◆ test_PdhGetDllVersion()

static void test_PdhGetDllVersion ( void  )
static

Definition at line 972 of file pdh.c.

973{
976
979 broken(ret == ERROR_SUCCESS), /* Vista+ */
980 "Expected PdhGetDllVersion to return PDH_INVALID_ARGUMENT, got %d\n", ret);
981
984 "Expected PdhGetDllVersion to return ERROR_SUCCESS, got %d\n", ret);
985
986 if (ret == ERROR_SUCCESS)
987 {
990 "Expected version number to be PDH_CVERSION_WIN50 or PDH_VERSION, got %u\n", version);
991 }
992}
static const WCHAR version[]
Definition: asmname.c:66
#define PDH_VERSION
Definition: pdh.h:42
#define PDH_CVERSION_WIN50
Definition: pdh.h:41
PDH_STATUS WINAPI PdhGetDllVersion(LPDWORD version)
Definition: pdh_main.c:759

Referenced by START_TEST().

◆ test_PdhGetFormattedCounterValue()

static void test_PdhGetFormattedCounterValue ( void  )
static

Definition at line 347 of file pdh.c.

348{
353
354 ret = PdhOpenQueryA( NULL, 0, &query );
355 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
356
357 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
358 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
359
361 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
362
364 ok(ret == PDH_INVALID_HANDLE, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
365
367 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
368
370 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
371
373 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
374
376 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
377
379 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
380
382 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
383
385 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
386
388 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
389
391 ok(ret == ERROR_SUCCESS, "PdhGetFormattedCounterValue failed 0x%08x\n", ret);
392
394 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
395}
#define PDH_FMT_NOCAP100
Definition: pdh.h:54
#define PDH_FMT_1000
Definition: pdh.h:53
#define PDH_FMT_NOSCALE
Definition: pdh.h:52

Referenced by START_TEST().

◆ test_PdhGetRawCounterValue()

static void test_PdhGetRawCounterValue ( void  )
static

Definition at line 397 of file pdh.c.

398{
403
404 ret = PdhOpenQueryA( NULL, 0, &query );
405 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
406
407 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
408 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
409
411 ok(ret == PDH_INVALID_HANDLE, "PdhGetRawCounterValue failed 0x%08x\n", ret);
412
414 ok(ret == PDH_INVALID_ARGUMENT, "PdhGetRawCounterValue failed 0x%08x\n", ret);
415
417 ok(ret == ERROR_SUCCESS, "PdhGetRawCounterValue failed 0x%08x\n", ret);
418 ok(value.CStatus == ERROR_SUCCESS, "expected ERROR_SUCCESS got %x\n", value.CStatus);
419
421 ok(ret == ERROR_SUCCESS, "PdhCollectQueryData failed 0x%08x\n", ret);
422
424 ok(ret == ERROR_SUCCESS, "PdhGetRawCounterValue failed 0x%08x\n", ret);
425 ok(value.CStatus == ERROR_SUCCESS, "expected ERROR_SUCCESS got %x\n", value.CStatus);
426
428 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
429}
PDH_STATUS WINAPI PdhGetRawCounterValue(PDH_HCOUNTER handle, LPDWORD type, PPDH_RAW_COUNTER value)
Definition: pdh_main.c:806

Referenced by START_TEST().

◆ test_PdhLookupPerfIndexByNameA()

static void test_PdhLookupPerfIndexByNameA ( void  )
static

Definition at line 602 of file pdh.c.

603{
605 DWORD index;
606
608 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
609
611 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
612
613 ret = PdhLookupPerfIndexByNameA( NULL, "No Counter", &index );
614 ok(ret == PDH_STRING_NOT_FOUND, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
615
616 ret = PdhLookupPerfIndexByNameA( NULL, "% Processor Time", NULL );
617 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
618
619 ret = PdhLookupPerfIndexByNameA( NULL, "% Processor Time", &index );
620 ok(ret == ERROR_SUCCESS, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
621 ok(index == 6, "PdhLookupPerfIndexByNameA failed %d\n", index);
622
623 ret = PdhLookupPerfIndexByNameA( NULL, "System Up Time", &index );
624 ok(ret == ERROR_SUCCESS, "PdhLookupPerfIndexByNameA failed 0x%08x\n", ret);
625 ok(index == 674, "PdhLookupPerfIndexByNameA failed %d\n", index);
626}
#define index(s, c)
Definition: various.h:29
GLuint index
Definition: glext.h:6031
PDH_STATUS WINAPI PdhLookupPerfIndexByNameA(LPCSTR machine, LPCSTR name, LPDWORD index)
Definition: pdh_main.c:838
#define PDH_STRING_NOT_FOUND
Definition: pdhmsg.h:69

Referenced by START_TEST().

◆ test_PdhLookupPerfIndexByNameW()

static void test_PdhLookupPerfIndexByNameW ( void  )
static

Definition at line 628 of file pdh.c.

629{
631 DWORD index;
632
633 static const WCHAR no_counter[] = {'N','o',' ','C','o','u','n','t','e','r',0};
634
636 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
637
639 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
640
641 ret = PdhLookupPerfIndexByNameW( NULL, no_counter, &index );
642 ok(ret == PDH_STRING_NOT_FOUND, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
643
645 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
646
648 ok(ret == ERROR_SUCCESS, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
649 ok(index == 6, "PdhLookupPerfIndexByNameW failed %d\n", index);
650
652 ok(ret == ERROR_SUCCESS, "PdhLookupPerfIndexByNameW failed 0x%08x\n", ret);
653 ok(index == 674, "PdhLookupPerfIndexByNameW failed %d\n", index);
654}
static const WCHAR uptime[]
Definition: pdh.c:76
static const WCHAR processor_time[]
Definition: pdh.c:74
PDH_STATUS WINAPI PdhLookupPerfIndexByNameW(LPCWSTR machine, LPCWSTR name, LPDWORD index)
Definition: pdh_main.c:863
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by START_TEST().

◆ test_PdhLookupPerfNameByIndexA()

static void test_PdhLookupPerfNameByIndexA ( void  )
static

Definition at line 656 of file pdh.c.

657{
659 char buffer[PDH_MAX_COUNTER_NAME] = "!!";
660 DWORD size;
661
663 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
664
665 size = 0;
667 ok(ret == PDH_MORE_DATA || ret == PDH_INSUFFICIENT_BUFFER, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
668
669 size = sizeof(buffer);
671 ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
672 ok(!lstrcmpA( buffer, "% Processor Time" ),
673 "PdhLookupPerfNameByIndexA failed, got %s expected \'%% Processor Time\'\n", buffer);
674 ok(size == sizeof("% Processor Time"), "PdhLookupPerfNameByIndexA failed %d\n", size);
675
676 size = sizeof(buffer);
678 ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
679 ok(!lstrcmpA( buffer, "Processor" ),
680 "PdhLookupPerfNameByIndexA failed, got %s expected \'Processor\'\n", buffer);
681 ok(size == sizeof("Processor"), "PdhLookupPerfNameByIndexA failed %d\n", size);
682
683 size = sizeof(buffer);
686 ret == PDH_MORE_DATA, /* win2k3 */
687 "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
688
689 size = sizeof(buffer);
691 ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexA failed 0x%08x\n", ret);
692 ok(!lstrcmpA( buffer, "System Up Time" ),
693 "PdhLookupPerfNameByIndexA failed, got %s expected \'System Up Time\'\n", buffer);
694 ok(size == sizeof("System Up Time"), "PdhLookupPerfNameByIndexA failed %d\n", size);
695}
GLuint buffer
Definition: glext.h:5915
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18
#define PDH_MAX_COUNTER_NAME
Definition: pdh.h:47
PDH_STATUS WINAPI PdhLookupPerfNameByIndexA(LPCSTR machine, DWORD index, LPSTR buffer, LPDWORD size)
Definition: pdh_main.c:890
#define PDH_INSUFFICIENT_BUFFER
Definition: pdhmsg.h:51

Referenced by START_TEST().

◆ test_PdhLookupPerfNameByIndexW()

static void test_PdhLookupPerfNameByIndexW ( void  )
static

Definition at line 697 of file pdh.c.

698{
701 DWORD size;
702
704 ok(ret == PDH_INVALID_ARGUMENT, "PdhLookupPerfNameByIndexW failed 0x%08x\n", ret);
705
706 size = 0;
708 ok(ret == PDH_MORE_DATA || ret == PDH_INSUFFICIENT_BUFFER, "PdhLookupPerfNameByIndexW failed 0x%08x\n", ret);
709
712 ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexW failed 0x%08x\n", ret);
713 ok(size == ARRAY_SIZE(processor_time), "PdhLookupPerfNameByIndexW failed %d\n", size);
714
718 ret == PDH_MORE_DATA, /* win2k3 */
719 "PdhLookupPerfNameByIndexW failed 0x%08x\n", ret);
720
723 ok(ret == ERROR_SUCCESS, "PdhLookupPerfNameByIndexW failed 0x%08x\n", ret);
724 ok(size == ARRAY_SIZE(uptime), "PdhLookupPerfNameByIndexW failed %d\n", size);
725}
#define ARRAY_SIZE(A)
Definition: main.h:33
PDH_STATUS WINAPI PdhLookupPerfNameByIndexW(LPCWSTR machine, DWORD index, LPWSTR buffer, LPDWORD size)
Definition: pdh_main.c:918

Referenced by START_TEST().

◆ test_PdhMakeCounterPathA()

static void test_PdhMakeCounterPathA ( void  )
static

Definition at line 875 of file pdh.c.

876{
879 char buffer[1024];
880 DWORD buflen;
881
883 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
884
885 buflen = 0;
886 ret = PdhMakeCounterPathA(NULL, NULL, &buflen, 0);
887 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
888
889 buflen = 0;
890 ret = PdhMakeCounterPathA(NULL, buffer, &buflen, 0);
891 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
892
893 buflen = sizeof(buffer);
894 memset(&e, 0, sizeof(e));
895 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
896 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
897
898 buffer[0] = 0;
899 buflen = sizeof(buffer);
900 e.szMachineName = (char *)"machine";
901 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
902 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
903 ok(!strcmp(buffer, ""), "expected \"machine\" got %s\n", buffer);
904
905 buffer[0] = 0;
906 buflen = sizeof(buffer);
907 e.szObjectName = (char *)"object";
908 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
909 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
910 ok(!strcmp(buffer, ""), "expected \"machine\" got %s\n", buffer);
911
912 buffer[0] = 0;
913 buflen = sizeof(buffer);
914 e.szInstanceName = (char *)"instance";
915 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
916 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
917 ok(!strcmp(buffer, ""), "expected \"machine\" got %s\n", buffer);
918
919 buffer[0] = 0;
920 buflen = sizeof(buffer);
921 e.szParentInstance = (char *)"parent";
922 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
923 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
924 ok(!strcmp(buffer, ""), "expected \"machine\" got %s\n", buffer);
925
926 buffer[0] = 0;
927 buflen = sizeof(buffer);
928 e.dwInstanceIndex = 1;
929 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
930 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
931 ok(!strcmp(buffer, ""), "expected \"machine\" got %s\n", buffer);
932
933 buffer[0] = 0;
934 buflen = sizeof(buffer);
935 e.szCounterName = (char *)"counter";
936 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
937 ok(ret == ERROR_SUCCESS, "PdhMakeCounterPathA failed 0x%08x\n", ret);
938 ok(!strcmp(buffer, "\\\\machine\\object(parent/instance#1)\\counter"),
939 "expected \"\\\\machine\\object(parent/instance#1)\\counter\" got %s\n", buffer);
940
941 buffer[0] = 0;
942 buflen = sizeof(buffer);
943 e.szParentInstance = NULL;
944 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
945 ok(ret == ERROR_SUCCESS, "PdhMakeCounterPathA failed 0x%08x\n", ret);
946 ok(!strcmp(buffer, "\\\\machine\\object(instance#1)\\counter"),
947 "expected \"\\\\machine\\object(instance#1)\\counter\" got %s\n", buffer);
948
949 buffer[0] = 0;
950 buflen = sizeof(buffer);
951 e.szInstanceName = NULL;
952 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
953 ok(ret == ERROR_SUCCESS, "PdhMakeCounterPathA failed 0x%08x\n", ret);
954 ok(!strcmp(buffer, "\\\\machine\\object\\counter"),
955 "expected \"\\\\machine\\object\\counter\" got %s\n", buffer);
956
957 buffer[0] = 0;
958 buflen = sizeof(buffer);
959 e.szMachineName = NULL;
960 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
961 ok(ret == ERROR_SUCCESS, "PdhMakeCounterPathA failed 0x%08x\n", ret);
962 ok(!strcmp(buffer, "\\object\\counter"),
963 "expected \"\\object\\counter\" got %s\n", buffer);
964
965 buffer[0] = 0;
966 buflen = sizeof(buffer);
967 e.szObjectName = NULL;
968 ret = PdhMakeCounterPathA(&e, buffer, &buflen, 0);
969 ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret);
970}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define e
Definition: ke_i.h:82
PDH_STATUS WINAPI PdhMakeCounterPathA(PDH_COUNTER_PATH_ELEMENTS_A *e, LPSTR buffer, LPDWORD buflen, DWORD flags)
Definition: pdh_main.c:1137
#define memset(x, y, z)
Definition: compat.h:39

Referenced by START_TEST().

◆ test_PdhOpenQueryA()

static void test_PdhOpenQueryA ( void  )
static

Definition at line 87 of file pdh.c.

88{
91
92 ret = PdhOpenQueryA( NULL, 0, NULL );
93 ok(ret == PDH_INVALID_ARGUMENT, "PdhOpenQueryA failed 0x%08x\n", ret);
94
95 ret = PdhOpenQueryA( NULL, 0, &query );
96 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
97
99 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
100
101 ret = PdhCloseQuery( &query );
102 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
103
105 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
106
108 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
109}

Referenced by START_TEST().

◆ test_PdhOpenQueryW()

static void test_PdhOpenQueryW ( void  )
static

Definition at line 111 of file pdh.c.

112{
115
116 ret = PdhOpenQueryW( NULL, 0, NULL );
117 ok(ret == PDH_INVALID_ARGUMENT, "PdhOpenQueryW failed 0x%08x\n", ret);
118
119 ret = PdhOpenQueryW( NULL, 0, &query );
120 ok(ret == ERROR_SUCCESS, "PdhOpenQueryW failed 0x%08x\n", ret);
121
123 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
124
125 ret = PdhCloseQuery( &query );
126 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
127
129 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
130
132 ok(ret == PDH_INVALID_HANDLE, "PdhCloseQuery failed 0x%08x\n", ret);
133}

Referenced by START_TEST().

◆ test_PdhSetCounterScaleFactor()

static void test_PdhSetCounterScaleFactor ( void  )
static

Definition at line 431 of file pdh.c.

432{
436
437 ret = PdhOpenQueryA( NULL, 0, &query );
438 ok(ret == ERROR_SUCCESS, "PdhOpenQueryA failed 0x%08x\n", ret);
439
440 ret = PdhAddCounterA( query, "\\System\\System Up Time", 0, &counter );
441 ok(ret == ERROR_SUCCESS, "PdhAddCounterA failed 0x%08x\n", ret);
442
444 ok(ret == PDH_INVALID_HANDLE, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
445
447 ok(ret == PDH_INVALID_HANDLE, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
448
450 ok(ret == PDH_INVALID_ARGUMENT, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
451
453 ok(ret == PDH_INVALID_ARGUMENT, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
454
456 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
457
459 ok(ret == ERROR_SUCCESS, "PdhSetCounterScaleFactor failed 0x%08x\n", ret);
460
462 ok(ret == ERROR_SUCCESS, "PdhCloseQuery failed 0x%08x\n", ret);
463}

Referenced by START_TEST().

◆ test_PdhValidatePathA()

static void test_PdhValidatePathA ( void  )
static

Definition at line 727 of file pdh.c.

728{
730
732 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathA failed 0x%08x\n", ret);
733
734 ret = PdhValidatePathA( "" );
735 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathA failed 0x%08x\n", ret);
736
737 ret = PdhValidatePathA( "\\System" );
738 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathA failed 0x%08x\n", ret);
739
740 ret = PdhValidatePathA( "System Up Time" );
741 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathA failed 0x%08x\n", ret);
742
743 ret = PdhValidatePathA( "\\System\\Nonexistent Counter" );
744 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhValidatePathA failed 0x%08x\n", ret);
745
746 ret = PdhValidatePathA( "\\System\\System Up Time" );
747 ok(ret == ERROR_SUCCESS, "PdhValidatePathA failed 0x%08x\n", ret);
748}
PDH_STATUS WINAPI PdhValidatePathA(LPCSTR path)
Definition: pdh_main.c:1051
#define PDH_CSTATUS_BAD_COUNTERNAME
Definition: pdhmsg.h:49

Referenced by START_TEST().

◆ test_PdhValidatePathExA()

static void test_PdhValidatePathExA ( void  )
static

Definition at line 776 of file pdh.c.

777{
779
780 ret = pPdhValidatePathExA( NULL, NULL );
781 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathExA failed 0x%08x\n", ret);
782
783 ret = pPdhValidatePathExA( NULL, "" );
784 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathExA failed 0x%08x\n", ret);
785
786 ret = pPdhValidatePathExA( NULL, "\\System" );
787 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathExA failed 0x%08x\n", ret);
788
789 ret = pPdhValidatePathExA( NULL, "System Up Time" );
790 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathExA failed 0x%08x\n", ret);
791
792 ret = pPdhValidatePathExA( NULL, "\\System\\System Down Time" );
793 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhValidatePathExA failed 0x%08x\n", ret);
794
795 ret = pPdhValidatePathExA( NULL, "\\System\\System Up Time" );
796 ok(ret == ERROR_SUCCESS, "PdhValidatePathExA failed 0x%08x\n", ret);
797}

Referenced by START_TEST().

◆ test_PdhValidatePathExW()

static void test_PdhValidatePathExW ( void  )
static

Definition at line 799 of file pdh.c.

800{
802
803 static const WCHAR empty[] = {0};
804 static const WCHAR system[] = {'\\','S','y','s','t','e','m',0};
805
806 ret = pPdhValidatePathExW( NULL, NULL );
807 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathExW failed 0x%08x\n", ret);
808
809 ret = pPdhValidatePathExW( NULL, empty );
810 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathExW failed 0x%08x\n", ret);
811
812 ret = pPdhValidatePathExW( NULL, system );
813 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathExW failed 0x%08x\n", ret);
814
815 ret = pPdhValidatePathExW( NULL, uptime );
816 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathExW failed 0x%08x\n", ret);
817
818 ret = pPdhValidatePathExW( NULL, nonexistent_counter );
819 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhValidatePathExW failed 0x%08x\n", ret);
820
821 ret = pPdhValidatePathExW( NULL, system_uptime );
822 ok(ret == ERROR_SUCCESS, "PdhValidatePathExW failed 0x%08x\n", ret);
823}
static const WCHAR empty[]
Definition: main.c:47
int __cdecl system(_In_opt_z_ const char *_Command)

Referenced by START_TEST().

◆ test_PdhValidatePathW()

static void test_PdhValidatePathW ( void  )
static

Definition at line 750 of file pdh.c.

751{
753
754 static const WCHAR empty[] = {0};
755 static const WCHAR system[] = {'\\','S','y','s','t','e','m',0};
756
758 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathW failed 0x%08x\n", ret);
759
761 ok(ret == PDH_INVALID_ARGUMENT, "PdhValidatePathW failed 0x%08x\n", ret);
762
764 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathW failed 0x%08x\n", ret);
765
767 ok(ret == PDH_CSTATUS_BAD_COUNTERNAME, "PdhValidatePathW failed 0x%08x\n", ret);
768
770 ok(ret == PDH_CSTATUS_NO_COUNTER, "PdhValidatePathW failed 0x%08x\n", ret);
771
773 ok(ret == ERROR_SUCCESS, "PdhValidatePathW failed 0x%08x\n", ret);
774}
PDH_STATUS WINAPI PdhValidatePathW(LPCWSTR path)
Definition: pdh_main.c:1077

Referenced by START_TEST().

Variable Documentation

◆ DWORD_PTR

Definition at line 32 of file pdh.c.

◆ LPCSTR

PDH_HCOUNTER *static PDH_HCOUNTER *static LONGLONG *static LPCSTR

Definition at line 32 of file pdh.c.

◆ LPCWSTR

Definition at line 33 of file pdh.c.

◆ nonexistent_counter

const WCHAR nonexistent_counter[]
static
Initial value:
=
{'\\','S','y','s','t','e','m','\\','S','y','s','t','e','m',' ','D','o','w','n',' ','T','i','m','e',0}

Definition at line 81 of file pdh.c.

Referenced by test_PdhAddCounterW(), test_PdhAddEnglishCounterW(), test_PdhValidatePathExW(), and test_PdhValidatePathW().

◆ pdh

HMODULE pdh
static

Definition at line 30 of file pdh.c.

Referenced by GetSeparateDebugHeader(), init_function_ptrs(), and render_embed_source_hack().

◆ percentage_processor_time

const WCHAR percentage_processor_time[]
static
Initial value:
=
{'\\','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}

Definition at line 83 of file pdh.c.

Referenced by test_PdhAddCounterW(), and test_PdhGetCounterInfoW().

◆ processor_time

const WCHAR processor_time[]
static
Initial value:
=
{'%',' ','P','r','o','c','e','s','s','o','r',' ','T','i','m','e',0}

Definition at line 74 of file pdh.c.

Referenced by test_PdhLookupPerfIndexByNameW(), and test_PdhLookupPerfNameByIndexW().

◆ system_uptime

const WCHAR system_uptime[]
static
Initial value:
=
{'\\','S','y','s','t','e','m','\\','S','y','s','t','e','m',' ','U','p',' ','T','i','m','e',0}

Definition at line 79 of file pdh.c.

Referenced by test_PdhAddEnglishCounterW(), test_PdhValidatePathExW(), and test_PdhValidatePathW().

◆ uptime

const WCHAR uptime[]
static
Initial value:
=
{'S','y','s','t','e','m',' ','U','p',' ','T','i','m','e',0}

Definition at line 76 of file pdh.c.

Referenced by debugcontrol_GetCurrentSystemUpTime(), DECLARE_INTERFACE_(), test_PdhLookupPerfIndexByNameW(), test_PdhLookupPerfNameByIndexW(), test_PdhValidatePathExW(), and test_PdhValidatePathW().