comparison fuhtark_test/include/winapi/pdh.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _PDH_H_
7 #define _PDH_H_
8
9 #include <windows.h>
10 #include <winperf.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 typedef LONG PDH_STATUS;
17
18 #define PDH_FUNCTION PDH_STATUS WINAPI
19
20 #define PDH_CVERSION_WIN40 ((DWORD)(0x0400))
21 #define PDH_CVERSION_WIN50 ((DWORD)(0x0500))
22
23 #define PDH_VERSION ((DWORD)((PDH_CVERSION_WIN50) + 0x0003))
24
25 #define IsSuccessSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x00000000L) ? TRUE : FALSE)
26 #define IsInformationalSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x40000000L) ? TRUE : FALSE)
27 #define IsWarningSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x80000000L) ? TRUE : FALSE)
28 #define IsErrorSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0xC0000000L) ? TRUE : FALSE)
29
30 #define MAX_COUNTER_PATH 256
31
32 #define PDH_MAX_COUNTER_NAME 1024
33 #define PDH_MAX_INSTANCE_NAME 1024
34 #define PDH_MAX_COUNTER_PATH 2048
35 #define PDH_MAX_DATASOURCE_PATH 1024
36
37 typedef HANDLE PDH_HCOUNTER;
38 typedef HANDLE PDH_HQUERY;
39 typedef HANDLE PDH_HLOG;
40
41 typedef PDH_HCOUNTER HCOUNTER;
42 typedef PDH_HQUERY HQUERY;
43 #ifndef _LMHLOGDEFINED_
44 typedef PDH_HLOG HLOG;
45 #endif
46
47 #ifdef INVALID_HANDLE_VALUE
48 #undef INVALID_HANDLE_VALUE
49 #define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1))
50 #endif
51
52 #define H_REALTIME_DATASOURCE NULL
53 #define H_WBEM_DATASOURCE INVALID_HANDLE_VALUE
54
55 typedef struct _PDH_RAW_COUNTER {
56 DWORD CStatus;
57 FILETIME TimeStamp;
58 LONGLONG FirstValue;
59 LONGLONG SecondValue;
60 DWORD MultiCount;
61 } PDH_RAW_COUNTER,*PPDH_RAW_COUNTER;
62
63 typedef struct _PDH_RAW_COUNTER_ITEM_A {
64 LPSTR szName;
65 PDH_RAW_COUNTER RawValue;
66 } PDH_RAW_COUNTER_ITEM_A,*PPDH_RAW_COUNTER_ITEM_A;
67
68 typedef struct _PDH_RAW_COUNTER_ITEM_W {
69 LPWSTR szName;
70 PDH_RAW_COUNTER RawValue;
71 } PDH_RAW_COUNTER_ITEM_W,*PPDH_RAW_COUNTER_ITEM_W;
72
73 typedef struct _PDH_FMT_COUNTERVALUE {
74 DWORD CStatus;
75 __MINGW_EXTENSION union {
76 LONG longValue;
77 double doubleValue;
78 LONGLONG largeValue;
79 LPCSTR AnsiStringValue;
80 LPCWSTR WideStringValue;
81 };
82 } PDH_FMT_COUNTERVALUE,*PPDH_FMT_COUNTERVALUE;
83
84 typedef struct _PDH_FMT_COUNTERVALUE_ITEM_A {
85 LPSTR szName;
86 PDH_FMT_COUNTERVALUE FmtValue;
87 } PDH_FMT_COUNTERVALUE_ITEM_A,*PPDH_FMT_COUNTERVALUE_ITEM_A;
88
89 typedef struct _PDH_FMT_COUNTERVALUE_ITEM_W {
90 LPWSTR szName;
91 PDH_FMT_COUNTERVALUE FmtValue;
92 } PDH_FMT_COUNTERVALUE_ITEM_W,*PPDH_FMT_COUNTERVALUE_ITEM_W;
93
94 typedef struct _PDH_STATISTICS {
95 DWORD dwFormat;
96 DWORD count;
97 PDH_FMT_COUNTERVALUE min;
98 PDH_FMT_COUNTERVALUE max;
99 PDH_FMT_COUNTERVALUE mean;
100 } PDH_STATISTICS,*PPDH_STATISTICS;
101
102 typedef struct _PDH_COUNTER_PATH_ELEMENTS_A {
103 LPSTR szMachineName;
104 LPSTR szObjectName;
105 LPSTR szInstanceName;
106 LPSTR szParentInstance;
107 DWORD dwInstanceIndex;
108 LPSTR szCounterName;
109 } PDH_COUNTER_PATH_ELEMENTS_A,*PPDH_COUNTER_PATH_ELEMENTS_A;
110
111 typedef struct _PDH_COUNTER_PATH_ELEMENTS_W {
112 LPWSTR szMachineName;
113 LPWSTR szObjectName;
114 LPWSTR szInstanceName;
115 LPWSTR szParentInstance;
116 DWORD dwInstanceIndex;
117 LPWSTR szCounterName;
118 } PDH_COUNTER_PATH_ELEMENTS_W,*PPDH_COUNTER_PATH_ELEMENTS_W;
119
120 typedef struct _PDH_DATA_ITEM_PATH_ELEMENTS_A {
121 LPSTR szMachineName;
122 GUID ObjectGUID;
123 DWORD dwItemId;
124 LPSTR szInstanceName;
125 } PDH_DATA_ITEM_PATH_ELEMENTS_A,*PPDH_DATA_ITEM_PATH_ELEMENTS_A;
126
127 typedef struct _PDH_DATA_ITEM_PATH_ELEMENTS_W {
128 LPWSTR szMachineName;
129 GUID ObjectGUID;
130 DWORD dwItemId;
131 LPWSTR szInstanceName;
132 } PDH_DATA_ITEM_PATH_ELEMENTS_W,*PPDH_DATA_ITEM_PATH_ELEMENTS_W;
133
134 typedef struct _PDH_COUNTER_INFO_A {
135 DWORD dwLength;
136 DWORD dwType;
137 DWORD CVersion;
138 DWORD CStatus;
139 LONG lScale;
140 LONG lDefaultScale;
141 DWORD_PTR dwUserData;
142 DWORD_PTR dwQueryUserData;
143 LPSTR szFullPath;
144 __MINGW_EXTENSION union {
145 PDH_DATA_ITEM_PATH_ELEMENTS_A DataItemPath;
146 PDH_COUNTER_PATH_ELEMENTS_A CounterPath;
147 __MINGW_EXTENSION struct {
148 LPSTR szMachineName;
149 LPSTR szObjectName;
150 LPSTR szInstanceName;
151 LPSTR szParentInstance;
152 DWORD dwInstanceIndex;
153 LPSTR szCounterName;
154 };
155 };
156 LPSTR szExplainText;
157 DWORD DataBuffer[1];
158 } PDH_COUNTER_INFO_A,*PPDH_COUNTER_INFO_A;
159
160 typedef struct _PDH_COUNTER_INFO_W {
161 DWORD dwLength;
162 DWORD dwType;
163 DWORD CVersion;
164 DWORD CStatus;
165 LONG lScale;
166 LONG lDefaultScale;
167 DWORD_PTR dwUserData;
168 DWORD_PTR dwQueryUserData;
169 LPWSTR szFullPath;
170 __MINGW_EXTENSION union {
171 PDH_DATA_ITEM_PATH_ELEMENTS_W DataItemPath;
172 PDH_COUNTER_PATH_ELEMENTS_W CounterPath;
173 __MINGW_EXTENSION struct {
174 LPWSTR szMachineName;
175 LPWSTR szObjectName;
176 LPWSTR szInstanceName;
177 LPWSTR szParentInstance;
178 DWORD dwInstanceIndex;
179 LPWSTR szCounterName;
180 };
181 };
182 LPWSTR szExplainText;
183 DWORD DataBuffer[1];
184 } PDH_COUNTER_INFO_W,*PPDH_COUNTER_INFO_W;
185
186 typedef struct _PDH_TIME_INFO {
187 LONGLONG StartTime;
188 LONGLONG EndTime;
189 DWORD SampleCount;
190 } PDH_TIME_INFO,*PPDH_TIME_INFO;
191
192 typedef struct _PDH_RAW_LOG_RECORD {
193 DWORD dwStructureSize;
194 DWORD dwRecordType;
195 DWORD dwItems;
196 UCHAR RawBytes[1];
197 } PDH_RAW_LOG_RECORD,*PPDH_RAW_LOG_RECORD;
198
199 typedef struct _PDH_LOG_SERVICE_QUERY_INFO_A {
200 DWORD dwSize;
201 DWORD dwFlags;
202 DWORD dwLogQuota;
203 LPSTR szLogFileCaption;
204 LPSTR szDefaultDir;
205 LPSTR szBaseFileName;
206 DWORD dwFileType;
207 DWORD dwReserved;
208 __MINGW_EXTENSION union {
209 __MINGW_EXTENSION struct {
210 DWORD PdlAutoNameInterval;
211 DWORD PdlAutoNameUnits;
212 LPSTR PdlCommandFilename;
213 LPSTR PdlCounterList;
214 DWORD PdlAutoNameFormat;
215 DWORD PdlSampleInterval;
216 FILETIME PdlLogStartTime;
217 FILETIME PdlLogEndTime;
218 };
219 __MINGW_EXTENSION struct {
220 DWORD TlNumberOfBuffers;
221 DWORD TlMinimumBuffers;
222 DWORD TlMaximumBuffers;
223 DWORD TlFreeBuffers;
224 DWORD TlBufferSize;
225 DWORD TlEventsLost;
226 DWORD TlLoggerThreadId;
227 DWORD TlBuffersWritten;
228 DWORD TlLogHandle;
229 LPSTR TlLogFileName;
230 };
231 };
232 } PDH_LOG_SERVICE_QUERY_INFO_A,*PPDH_LOG_SERVICE_QUERY_INFO_A;
233
234 typedef struct _PDH_LOG_SERVICE_QUERY_INFO_W {
235 DWORD dwSize;
236 DWORD dwFlags;
237 DWORD dwLogQuota;
238 LPWSTR szLogFileCaption;
239 LPWSTR szDefaultDir;
240 LPWSTR szBaseFileName;
241 DWORD dwFileType;
242 DWORD dwReserved;
243 __MINGW_EXTENSION union {
244 __MINGW_EXTENSION struct {
245 DWORD PdlAutoNameInterval;
246 DWORD PdlAutoNameUnits;
247 LPWSTR PdlCommandFilename;
248 LPWSTR PdlCounterList;
249 DWORD PdlAutoNameFormat;
250 DWORD PdlSampleInterval;
251 FILETIME PdlLogStartTime;
252 FILETIME PdlLogEndTime;
253 };
254 __MINGW_EXTENSION struct {
255 DWORD TlNumberOfBuffers;
256 DWORD TlMinimumBuffers;
257 DWORD TlMaximumBuffers;
258 DWORD TlFreeBuffers;
259 DWORD TlBufferSize;
260 DWORD TlEventsLost;
261 DWORD TlLoggerThreadId;
262 DWORD TlBuffersWritten;
263 DWORD TlLogHandle;
264 LPWSTR TlLogFileName;
265 };
266 };
267 } PDH_LOG_SERVICE_QUERY_INFO_W,*PPDH_LOG_SERVICE_QUERY_INFO_W;
268
269 #define MAX_TIME_VALUE ((LONGLONG) 0x7FFFFFFFFFFFFFFF)
270 #define MIN_TIME_VALUE ((LONGLONG) 0)
271
272 PDH_FUNCTION PdhGetDllVersion(LPDWORD lpdwVersion);
273 PDH_FUNCTION PdhOpenQueryW(LPCWSTR szDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery);
274 PDH_FUNCTION PdhOpenQueryA(LPCSTR szDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery);
275 PDH_FUNCTION PdhAddCounterW(PDH_HQUERY hQuery,LPCWSTR szFullCounterPath,DWORD_PTR dwUserData,PDH_HCOUNTER *phCounter);
276 PDH_FUNCTION PdhAddCounterA(PDH_HQUERY hQuery,LPCSTR szFullCounterPath,DWORD_PTR dwUserData,PDH_HCOUNTER *phCounter);
277 PDH_FUNCTION PdhRemoveCounter(PDH_HCOUNTER hCounter);
278 PDH_FUNCTION PdhCollectQueryData(PDH_HQUERY hQuery);
279 PDH_FUNCTION PdhCloseQuery(PDH_HQUERY hQuery);
280 PDH_FUNCTION PdhGetFormattedCounterValue(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwType,PPDH_FMT_COUNTERVALUE pValue);
281 PDH_FUNCTION PdhGetFormattedCounterArrayA(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_FMT_COUNTERVALUE_ITEM_A ItemBuffer);
282 PDH_FUNCTION PdhGetFormattedCounterArrayW(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_FMT_COUNTERVALUE_ITEM_W ItemBuffer);
283
284 #define PDH_FMT_RAW ((DWORD) 0x00000010)
285 #define PDH_FMT_ANSI ((DWORD) 0x00000020)
286 #define PDH_FMT_UNICODE ((DWORD) 0x00000040)
287 #define PDH_FMT_LONG ((DWORD) 0x00000100)
288 #define PDH_FMT_DOUBLE ((DWORD) 0x00000200)
289 #define PDH_FMT_LARGE ((DWORD) 0x00000400)
290 #define PDH_FMT_NOSCALE ((DWORD) 0x00001000)
291 #define PDH_FMT_1000 ((DWORD) 0x00002000)
292 #define PDH_FMT_NODATA ((DWORD) 0x00004000)
293 #define PDH_FMT_NOCAP100 ((DWORD) 0x00008000)
294 #define PERF_DETAIL_COSTLY ((DWORD) 0x00010000)
295 #define PERF_DETAIL_STANDARD ((DWORD) 0x0000FFFF)
296
297 PDH_FUNCTION PdhGetRawCounterValue(PDH_HCOUNTER hCounter,LPDWORD lpdwType,PPDH_RAW_COUNTER pValue);
298 PDH_FUNCTION PdhGetRawCounterArrayA(PDH_HCOUNTER hCounter,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_RAW_COUNTER_ITEM_A ItemBuffer);
299 PDH_FUNCTION PdhGetRawCounterArrayW(PDH_HCOUNTER hCounter,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_RAW_COUNTER_ITEM_W ItemBuffer);
300 PDH_FUNCTION PdhCalculateCounterFromRawValue(PDH_HCOUNTER hCounter,DWORD dwFormat,PPDH_RAW_COUNTER rawValue1,PPDH_RAW_COUNTER rawValue2,PPDH_FMT_COUNTERVALUE fmtValue);
301 PDH_FUNCTION PdhComputeCounterStatistics(PDH_HCOUNTER hCounter,DWORD dwFormat,DWORD dwFirstEntry,DWORD dwNumEntries,PPDH_RAW_COUNTER lpRawValueArray,PPDH_STATISTICS data);
302 PDH_FUNCTION PdhGetCounterInfoW(PDH_HCOUNTER hCounter,BOOLEAN bRetrieveExplainText,LPDWORD pdwBufferSize,PPDH_COUNTER_INFO_W lpBuffer);
303 PDH_FUNCTION PdhGetCounterInfoA(PDH_HCOUNTER hCounter,BOOLEAN bRetrieveExplainText,LPDWORD pdwBufferSize,PPDH_COUNTER_INFO_A lpBuffer);
304
305 #define PDH_MAX_SCALE (7L)
306 #define PDH_MIN_SCALE (-7L)
307
308 PDH_FUNCTION PdhSetCounterScaleFactor(PDH_HCOUNTER hCounter,LONG lFactor);
309 PDH_FUNCTION PdhConnectMachineW(LPCWSTR szMachineName);
310 PDH_FUNCTION PdhConnectMachineA(LPCSTR szMachineName);
311 PDH_FUNCTION PdhEnumMachinesW(LPCWSTR szDataSource,LPWSTR mszMachineList,LPDWORD pcchBufferSize);
312 PDH_FUNCTION PdhEnumMachinesA(LPCSTR szDataSource,LPSTR mszMachineList,LPDWORD pcchBufferSize);
313 PDH_FUNCTION PdhEnumObjectsW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPWSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh);
314 PDH_FUNCTION PdhEnumObjectsA(LPCSTR szDataSource,LPCSTR szMachineName,LPSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh);
315 PDH_FUNCTION PdhEnumObjectItemsW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR mszCounterList,LPDWORD pcchCounterListLength,LPWSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags);
316 PDH_FUNCTION PdhEnumObjectItemsA(LPCSTR szDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR mszCounterList,LPDWORD pcchCounterListLength,LPSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags);
317
318 #define PDH_OBJECT_HAS_INSTANCES ((DWORD) 0x00000001)
319
320 PDH_FUNCTION PdhMakeCounterPathW(PPDH_COUNTER_PATH_ELEMENTS_W pCounterPathElements,LPWSTR szFullPathBuffer,LPDWORD pcchBufferSize,DWORD dwFlags);
321 PDH_FUNCTION PdhMakeCounterPathA(PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,LPSTR szFullPathBuffer,LPDWORD pcchBufferSize,DWORD dwFlags);
322 PDH_FUNCTION PdhParseCounterPathW(LPCWSTR szFullPathBuffer,PPDH_COUNTER_PATH_ELEMENTS_W pCounterPathElements,LPDWORD pdwBufferSize,DWORD dwFlags);
323 PDH_FUNCTION PdhParseCounterPathA(LPCSTR szFullPathBuffer,PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,LPDWORD pdwBufferSize,DWORD dwFlags);
324
325 #define PDH_PATH_WBEM_RESULT ((DWORD) 0x00000001)
326 #define PDH_PATH_WBEM_INPUT ((DWORD) 0x00000002)
327
328 #define PDH_PATH_LANG_FLAGS(LangId,Flags) ((DWORD)(((LangId & 0x0000FFFF) << 16) | (Flags & 0x0000FFFF)))
329
330 PDH_FUNCTION PdhParseInstanceNameW(LPCWSTR szInstanceString,LPWSTR szInstanceName,LPDWORD pcchInstanceNameLength,LPWSTR szParentName,LPDWORD pcchParentNameLength,LPDWORD lpIndex);
331 PDH_FUNCTION PdhParseInstanceNameA(LPCSTR szInstanceString,LPSTR szInstanceName,LPDWORD pcchInstanceNameLength,LPSTR szParentName,LPDWORD pcchParentNameLength,LPDWORD lpIndex);
332 PDH_FUNCTION PdhValidatePathW(LPCWSTR szFullPathBuffer);
333 PDH_FUNCTION PdhValidatePathA(LPCSTR szFullPathBuffer);
334 PDH_FUNCTION PdhGetDefaultPerfObjectW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPWSTR szDefaultObjectName,LPDWORD pcchBufferSize);
335 PDH_FUNCTION PdhGetDefaultPerfObjectA(LPCSTR szDataSource,LPCSTR szMachineName,LPSTR szDefaultObjectName,LPDWORD pcchBufferSize);
336 PDH_FUNCTION PdhGetDefaultPerfCounterW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR szDefaultCounterName,LPDWORD pcchBufferSize);
337 PDH_FUNCTION PdhGetDefaultPerfCounterA(LPCSTR szDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR szDefaultCounterName,LPDWORD pcchBufferSize);
338
339 typedef PDH_STATUS (WINAPI *CounterPathCallBack)(DWORD_PTR);
340
341 typedef struct _BrowseDlgConfig_HW {
342 DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved : 22;
343 HWND hWndOwner;
344 PDH_HLOG hDataSource;
345 LPWSTR szReturnPathBuffer;
346 DWORD cchReturnPathLength;
347 CounterPathCallBack pCallBack;
348 DWORD_PTR dwCallBackArg;
349 PDH_STATUS CallBackStatus;
350 DWORD dwDefaultDetailLevel;
351 LPWSTR szDialogBoxCaption;
352 } PDH_BROWSE_DLG_CONFIG_HW,*PPDH_BROWSE_DLG_CONFIG_HW;
353
354 typedef struct _BrowseDlgConfig_HA {
355 DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22;
356 HWND hWndOwner;
357 PDH_HLOG hDataSource;
358 LPSTR szReturnPathBuffer;
359 DWORD cchReturnPathLength;
360 CounterPathCallBack pCallBack;
361 DWORD_PTR dwCallBackArg;
362 PDH_STATUS CallBackStatus;
363 DWORD dwDefaultDetailLevel;
364 LPSTR szDialogBoxCaption;
365 } PDH_BROWSE_DLG_CONFIG_HA,*PPDH_BROWSE_DLG_CONFIG_HA;
366
367 typedef struct _BrowseDlgConfig_W {
368 DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22;
369 HWND hWndOwner;
370 LPWSTR szDataSource;
371 LPWSTR szReturnPathBuffer;
372 DWORD cchReturnPathLength;
373 CounterPathCallBack pCallBack;
374 DWORD_PTR dwCallBackArg;
375 PDH_STATUS CallBackStatus;
376 DWORD dwDefaultDetailLevel;
377 LPWSTR szDialogBoxCaption;
378 } PDH_BROWSE_DLG_CONFIG_W,*PPDH_BROWSE_DLG_CONFIG_W;
379
380 typedef struct _BrowseDlgConfig_A {
381 DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22;
382 HWND hWndOwner;
383 LPSTR szDataSource;
384 LPSTR szReturnPathBuffer;
385 DWORD cchReturnPathLength;
386 CounterPathCallBack pCallBack;
387 DWORD_PTR dwCallBackArg;
388 PDH_STATUS CallBackStatus;
389 DWORD dwDefaultDetailLevel;
390 LPSTR szDialogBoxCaption;
391 } PDH_BROWSE_DLG_CONFIG_A,*PPDH_BROWSE_DLG_CONFIG_A;
392
393 PDH_FUNCTION PdhBrowseCountersW(PPDH_BROWSE_DLG_CONFIG_W pBrowseDlgData);
394 PDH_FUNCTION PdhBrowseCountersA(PPDH_BROWSE_DLG_CONFIG_A pBrowseDlgData);
395 PDH_FUNCTION PdhExpandCounterPathW(LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength);
396 PDH_FUNCTION PdhExpandCounterPathA(LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength);
397 PDH_FUNCTION PdhLookupPerfNameByIndexW(LPCWSTR szMachineName,DWORD dwNameIndex,LPWSTR szNameBuffer,LPDWORD pcchNameBufferSize);
398 PDH_FUNCTION PdhLookupPerfNameByIndexA(LPCSTR szMachineName,DWORD dwNameIndex,LPSTR szNameBuffer,LPDWORD pcchNameBufferSize);
399 PDH_FUNCTION PdhLookupPerfIndexByNameW(LPCWSTR szMachineName,LPCWSTR szNameBuffer,LPDWORD pdwIndex);
400 PDH_FUNCTION PdhLookupPerfIndexByNameA(LPCSTR szMachineName,LPCSTR szNameBuffer,LPDWORD pdwIndex);
401
402 #define PDH_NOEXPANDCOUNTERS 1
403 #define PDH_NOEXPANDINSTANCES 2
404 #define PDH_REFRESHCOUNTERS 4
405
406 PDH_FUNCTION PdhExpandWildCardPathA(LPCSTR szDataSource,LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags);
407 PDH_FUNCTION PdhExpandWildCardPathW(LPCWSTR szDataSource,LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags);
408
409 #define PDH_LOG_READ_ACCESS ((DWORD) 0x00010000)
410 #define PDH_LOG_WRITE_ACCESS ((DWORD) 0x00020000)
411 #define PDH_LOG_UPDATE_ACCESS ((DWORD) 0x00040000)
412 #define PDH_LOG_ACCESS_MASK ((DWORD) 0x000F0000)
413
414 #define PDH_LOG_CREATE_NEW ((DWORD) 0x00000001)
415 #define PDH_LOG_CREATE_ALWAYS ((DWORD) 0x00000002)
416 #define PDH_LOG_OPEN_ALWAYS ((DWORD) 0x00000003)
417 #define PDH_LOG_OPEN_EXISTING ((DWORD) 0x00000004)
418 #define PDH_LOG_CREATE_MASK ((DWORD) 0x0000000F)
419
420 #define PDH_LOG_OPT_USER_STRING ((DWORD) 0x01000000)
421 #define PDH_LOG_OPT_CIRCULAR ((DWORD) 0x02000000)
422 #define PDH_LOG_OPT_MAX_IS_BYTES ((DWORD) 0x04000000)
423 #define PDH_LOG_OPT_APPEND ((DWORD) 0x08000000)
424 #define PDH_LOG_OPT_MASK ((DWORD) 0x0F000000)
425
426 #define PDH_LOG_TYPE_UNDEFINED 0
427 #define PDH_LOG_TYPE_CSV 1
428 #define PDH_LOG_TYPE_TSV 2
429
430 #define PDH_LOG_TYPE_TRACE_KERNEL 4
431 #define PDH_LOG_TYPE_TRACE_GENERIC 5
432 #define PDH_LOG_TYPE_PERFMON 6
433 #define PDH_LOG_TYPE_SQL 7
434 #define PDH_LOG_TYPE_BINARY 8
435
436 PDH_FUNCTION PdhOpenLogW(LPCWSTR szLogFileName,DWORD dwAccessFlags,LPDWORD lpdwLogType,PDH_HQUERY hQuery,DWORD dwMaxSize,LPCWSTR szUserCaption,PDH_HLOG *phLog);
437 PDH_FUNCTION PdhOpenLogA(LPCSTR szLogFileName,DWORD dwAccessFlags,LPDWORD lpdwLogType,PDH_HQUERY hQuery,DWORD dwMaxSize,LPCSTR szUserCaption,PDH_HLOG *phLog);
438 PDH_FUNCTION PdhUpdateLogW(PDH_HLOG hLog,LPCWSTR szUserString);
439 PDH_FUNCTION PdhUpdateLogA(PDH_HLOG hLog,LPCSTR szUserString);
440 PDH_FUNCTION PdhUpdateLogFileCatalog(PDH_HLOG hLog);
441 PDH_FUNCTION PdhGetLogFileSize(PDH_HLOG hLog,LONGLONG *llSize);
442 PDH_FUNCTION PdhCloseLog(PDH_HLOG hLog,DWORD dwFlags);
443
444 #define PDH_FLAGS_CLOSE_QUERY ((DWORD) 0x00000001)
445 #define PDH_FLAGS_FILE_BROWSER_ONLY ((DWORD) 0x00000001)
446
447 PDH_FUNCTION PdhSelectDataSourceW(HWND hWndOwner,DWORD dwFlags,LPWSTR szDataSource,LPDWORD pcchBufferLength);
448 PDH_FUNCTION PdhSelectDataSourceA(HWND hWndOwner,DWORD dwFlags,LPSTR szDataSource,LPDWORD pcchBufferLength);
449 WINBOOL PdhIsRealTimeQuery(PDH_HQUERY hQuery);
450 PDH_FUNCTION PdhSetQueryTimeRange(PDH_HQUERY hQuery,PPDH_TIME_INFO pInfo);
451 PDH_FUNCTION PdhGetDataSourceTimeRangeW(LPCWSTR szDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD pdwBufferSize);
452 PDH_FUNCTION PdhGetDataSourceTimeRangeA(LPCSTR szDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD dwBufferSize);
453 PDH_FUNCTION PdhCollectQueryDataEx(PDH_HQUERY hQuery,DWORD dwIntervalTime,HANDLE hNewDataEvent);
454 PDH_FUNCTION PdhFormatFromRawValue(DWORD dwCounterType,DWORD dwFormat,LONGLONG *pTimeBase,PPDH_RAW_COUNTER pRawValue1,PPDH_RAW_COUNTER pRawValue2,PPDH_FMT_COUNTERVALUE pFmtValue);
455 PDH_FUNCTION PdhGetCounterTimeBase(PDH_HCOUNTER hCounter,LONGLONG *pTimeBase);
456 PDH_FUNCTION PdhReadRawLogRecord(PDH_HLOG hLog,FILETIME ftRecord,PPDH_RAW_LOG_RECORD pRawLogRecord,LPDWORD pdwBufferLength);
457
458 #define DATA_SOURCE_REGISTRY ((DWORD) 0x00000001)
459 #define DATA_SOURCE_LOGFILE ((DWORD) 0x00000002)
460 #define DATA_SOURCE_WBEM ((DWORD) 0x00000004)
461
462 PDH_FUNCTION PdhSetDefaultRealTimeDataSource(DWORD dwDataSourceId);
463 PDH_FUNCTION PdhBindInputDataSourceW(PDH_HLOG *phDataSource,LPCWSTR LogFileNameList);
464 PDH_FUNCTION PdhBindInputDataSourceA(PDH_HLOG *phDataSource,LPCSTR LogFileNameList);
465 PDH_FUNCTION PdhOpenQueryH(PDH_HLOG hDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery);
466 PDH_FUNCTION PdhEnumMachinesHW(PDH_HLOG hDataSource,LPWSTR mszMachineList,LPDWORD pcchBufferSize);
467 PDH_FUNCTION PdhEnumMachinesHA(PDH_HLOG hDataSource,LPSTR mszMachineList,LPDWORD pcchBufferSize);
468 PDH_FUNCTION PdhEnumObjectsHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPWSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh);
469 PDH_FUNCTION PdhEnumObjectsHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh);
470 PDH_FUNCTION PdhEnumObjectItemsHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR mszCounterList,LPDWORD pcchCounterListLength,LPWSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags);
471 PDH_FUNCTION PdhEnumObjectItemsHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR mszCounterList,LPDWORD pcchCounterListLength,LPSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags);
472 PDH_FUNCTION PdhExpandWildCardPathHW(PDH_HLOG hDataSource,LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags);
473 PDH_FUNCTION PdhExpandWildCardPathHA(PDH_HLOG hDataSource,LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags);
474 PDH_FUNCTION PdhGetDataSourceTimeRangeH(PDH_HLOG hDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD pdwBufferSize);
475 PDH_FUNCTION PdhGetDefaultPerfObjectHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPWSTR szDefaultObjectName,LPDWORD pcchBufferSize);
476 PDH_FUNCTION PdhGetDefaultPerfObjectHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPSTR szDefaultObjectName,LPDWORD pcchBufferSize);
477 PDH_FUNCTION PdhGetDefaultPerfCounterHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR szDefaultCounterName,LPDWORD pcchBufferSize);
478 PDH_FUNCTION PdhGetDefaultPerfCounterHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR szDefaultCounterName,LPDWORD pcchBufferSize);
479 PDH_FUNCTION PdhBrowseCountersHW(PPDH_BROWSE_DLG_CONFIG_HW pBrowseDlgData);
480 PDH_FUNCTION PdhBrowseCountersHA(PPDH_BROWSE_DLG_CONFIG_HA pBrowseDlgData);
481 PDH_FUNCTION PdhVerifySQLDBW(LPCWSTR szDataSource);
482 PDH_FUNCTION PdhVerifySQLDBA(LPCSTR szDataSource);
483 PDH_FUNCTION PdhCreateSQLTablesW(LPCWSTR szDataSource);
484 PDH_FUNCTION PdhCreateSQLTablesA(LPCSTR szDataSource);
485 PDH_FUNCTION PdhEnumLogSetNamesW(LPCWSTR szDataSource,LPWSTR mszDataSetNameList,LPDWORD pcchBufferLength);
486 PDH_FUNCTION PdhEnumLogSetNamesA(LPCSTR szDataSource,LPSTR mszDataSetNameList,LPDWORD pcchBufferLength);
487 PDH_FUNCTION PdhGetLogSetGUID(PDH_HLOG hLog,GUID *pGuid,int *pRunId);
488 PDH_FUNCTION PdhSetLogSetRunID(PDH_HLOG hLog,int RunId);
489
490 #ifdef UNICODE
491 #ifndef _UNICODE
492 #define _UNICODE
493 #endif
494 #endif
495
496 #ifdef _UNICODE
497 #ifndef UNICODE
498 #define UNICODE
499 #endif
500 #endif
501
502 #ifdef UNICODE
503
504 #define PdhOpenQuery PdhOpenQueryW
505 #define PdhAddCounter PdhAddCounterW
506 #define PdhGetCounterInfo PdhGetCounterInfoW
507 #define PDH_COUNTER_INFO PDH_COUNTER_INFO_W
508 #define PPDH_COUNTER_INFO PPDH_COUNTER_INFO_W
509 #define PdhConnectMachine PdhConnectMachineW
510 #define PdhEnumMachines PdhEnumMachinesW
511 #define PdhEnumObjects PdhEnumObjectsW
512 #define PdhEnumObjectItems PdhEnumObjectItemsW
513 #define PdhMakeCounterPath PdhMakeCounterPathW
514 #define PDH_COUNTER_PATH_ELEMENTS PDH_COUNTER_PATH_ELEMENTS_W
515 #define PPDH_COUNTER_PATH_ELEMENTS PPDH_COUNTER_PATH_ELEMENTS_W
516 #define PdhParseCounterPath PdhParseCounterPathW
517 #define PdhParseInstanceName PdhParseInstanceNameW
518 #define PdhValidatePath PdhValidatePathW
519 #define PdhGetDefaultPerfObject PdhGetDefaultPerfObjectW
520 #define PdhGetDefaultPerfCounter PdhGetDefaultPerfCounterW
521 #define PdhBrowseCounters PdhBrowseCountersW
522 #define PdhBrowseCountersH PdhBrowseCountersHW
523 #define PDH_BROWSE_DLG_CONFIG PDH_BROWSE_DLG_CONFIG_W
524 #define PPDH_BROWSE_DLG_CONFIG PPDH_BROWSE_DLG_CONFIG_W
525 #define PDH_BROWSE_DLG_CONFIG_H PDH_BROWSE_DLG_CONFIG_HW
526 #define PPDH_BROWSE_DLG_CONFIG_H PPDH_BROWSE_DLG_CONFIG_HW
527 #define PdhExpandCounterPath PdhExpandCounterPathW
528
529 #define PDH_FMT_COUNTERVALUE_ITEM PDH_FMT_COUNTERVALUE_ITEM_W
530 #define PPDH_FMT_COUNTERVALUE_ITEM PPDH_FMT_COUNTERVALUE_ITEM_W
531 #define PDH_RAW_COUNTER_ITEM PDH_RAW_COUNTER_ITEM_W
532 #define PPDH_RAW_COUNTER_ITEM PPDH_RAW_COUNTER_ITEM_W
533 #define PdhGetFormattedCounterArray PdhGetFormattedCounterArrayW
534 #define PdhGetRawCounterArray PdhGetRawCounterArrayW
535 #define PdhLookupPerfNameByIndex PdhLookupPerfNameByIndexW
536 #define PdhLookupPerfIndexByName PdhLookupPerfIndexByNameW
537 #define PdhOpenLog PdhOpenLogW
538 #define PdhUpdateLog PdhUpdateLogW
539 #define PdhSelectDataSource PdhSelectDataSourceW
540 #define PdhGetDataSourceTimeRange PdhGetDataSourceTimeRangeW
541 #define PDH_LOG_SERVICE_QUERY_INFO PDH_LOG_SERVICE_QUERY_INFO_W
542 #define PPDH_LOG_SERVICE_QUERY_INFO PPDH_LOG_SERVICE_QUERY_INFO_W
543 #define PdhLogServiceControl PdhLogServiceControlW
544 #define PdhLogServiceQuery PdhLogServiceQueryW
545 #define PdhExpandWildCardPath PdhExpandWildCardPathW
546 #define PdhBindInputDataSource PdhBindInputDataSourceW
547 #define PdhEnumMachinesH PdhEnumMachinesHW
548 #define PdhEnumObjectsH PdhEnumObjectsHW
549 #define PdhEnumObjectItemsH PdhEnumObjectItemsHW
550 #define PdhExpandWildCardPathH PdhExpandWildCardPathHW
551 #define PdhGetDefaultPerfObjectH PdhGetDefaultPerfObjectHW
552 #define PdhGetDefaultPerfCounterH PdhGetDefaultPerfCounterHW
553 #define PdhEnumLogSetNames PdhEnumLogSetNamesW
554 #define PdhCreateSQLTables PdhCreateSQLTablesW
555 #define PdhVerifySQLDB PdhVerifySQLDBW
556 #else
557
558 #define PdhOpenQuery PdhOpenQueryA
559 #define PdhAddCounter PdhAddCounterA
560 #define PdhGetCounterInfo PdhGetCounterInfoA
561 #define PDH_COUNTER_INFO PDH_COUNTER_INFO_A
562 #define PPDH_COUNTER_INFO PPDH_COUNTER_INFO_A
563 #define PdhConnectMachine PdhConnectMachineA
564 #define PdhEnumMachines PdhEnumMachinesA
565 #define PdhEnumObjects PdhEnumObjectsA
566 #define PdhEnumObjectItems PdhEnumObjectItemsA
567 #define PdhMakeCounterPath PdhMakeCounterPathA
568 #define PDH_COUNTER_PATH_ELEMENTS PDH_COUNTER_PATH_ELEMENTS_A
569 #define PPDH_COUNTER_PATH_ELEMENTS PPDH_COUNTER_PATH_ELEMENTS_A
570 #define PdhParseCounterPath PdhParseCounterPathA
571 #define PdhParseInstanceName PdhParseInstanceNameA
572 #define PdhValidatePath PdhValidatePathA
573 #define PdhGetDefaultPerfObject PdhGetDefaultPerfObjectA
574 #define PdhGetDefaultPerfCounter PdhGetDefaultPerfCounterA
575 #define PdhBrowseCounters PdhBrowseCountersA
576 #define PdhBrowseCountersH PdhBrowseCountersHA
577 #define PDH_BROWSE_DLG_CONFIG PDH_BROWSE_DLG_CONFIG_A
578 #define PPDH_BROWSE_DLG_CONFIG PPDH_BROWSE_DLG_CONFIG_A
579 #define PDH_BROWSE_DLG_CONFIG_H PDH_BROWSE_DLG_CONFIG_HA
580 #define PPDH_BROWSE_DLG_CONFIG_H PPDH_BROWSE_DLG_CONFIG_HA
581 #define PdhExpandCounterPath PdhExpandCounterPathA
582
583 #define PDH_FMT_COUNTERVALUE_ITEM PDH_FMT_COUNTERVALUE_ITEM_A
584 #define PPDH_FMT_COUNTERVALUE_ITEM PPDH_FMT_COUNTERVALUE_ITEM_A
585 #define PDH_RAW_COUNTER_ITEM PDH_RAW_COUNTER_ITEM_A
586 #define PPDH_RAW_COUNTER_ITEM PPDH_RAW_COUNTER_ITEM_A
587 #define PdhGetFormattedCounterArray PdhGetFormattedCounterArrayA
588 #define PdhGetRawCounterArray PdhGetRawCounterArrayA
589 #define PdhLookupPerfNameByIndex PdhLookupPerfNameByIndexA
590 #define PdhLookupPerfIndexByName PdhLookupPerfIndexByNameA
591 #define PdhOpenLog PdhOpenLogA
592 #define PdhUpdateLog PdhUpdateLogA
593 #define PdhSelectDataSource PdhSelectDataSourceA
594 #define PdhGetDataSourceTimeRange PdhGetDataSourceTimeRangeA
595 #define PDH_LOG_SERVICE_QUERY_INFO PDH_LOG_SERVICE_QUERY_INFO_A
596 #define PPDH_LOG_SERVICE_QUERY_INFO PPDH_LOG_SERVICE_QUERY_INFO_A
597 #define PdhLogServiceControl PdhLogServiceControlA
598 #define PdhLogServiceQuery PdhLogServiceQueryA
599 #define PdhExpandWildCardPath PdhExpandWildCardPathA
600 #define PdhBindInputDataSource PdhBindInputDataSourceA
601 #define PdhEnumMachinesH PdhEnumMachinesHA
602 #define PdhEnumObjectsH PdhEnumObjectsHA
603 #define PdhEnumObjectItemsH PdhEnumObjectItemsHA
604 #define PdhExpandWildCardPathH PdhExpandWildCardPathHA
605 #define PdhGetDefaultPerfObjectH PdhGetDefaultPerfObjectHA
606 #define PdhGetDefaultPerfCounterH PdhGetDefaultPerfCounterHA
607 #define PdhEnumLogSetNames PdhEnumLogSetNamesA
608 #define PdhCreateSQLTables PdhCreateSQLTablesA
609 #define PdhVerifySQLDB PdhVerifySQLDBA
610 #endif
611
612 #ifdef __cplusplus
613 }
614 #endif
615 #endif