1 {******************************************************************************}
2 { }
3 { Performance Data Helper API interface Unit for Object Pascal }
4 { }
5 { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
6 { Corporation. All Rights Reserved. }
7 { }
8 { The original file is: pdh.h, released June 2000. The original Pascal }
9 { code is: Pdh.pas, released December 2000. The initial developer of the }
10 { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
11 { }
12 { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
13 { Marcel van Brakel. All Rights Reserved. }
14 { }
15 { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
16 { }
17 { You may retrieve the latest version of this file at the Project JEDI }
18 { APILIB home page, located at http://jedi-apilib.sourceforge.net }
19 { }
20 { The contents of this file are used with permission, subject to the Mozilla }
21 { Public License Version 1.1 (the "License"); you may not use this file except }
22 { in compliance with the License. You may obtain a copy of the License at }
23 { http://www.mozilla.org/MPL/MPL-1.1.html }
24 { }
25 { Software distributed under the License is distributed on an "AS IS" basis, }
26 { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
27 { the specific language governing rights and limitations under the License. }
28 { }
29 { Alternatively, the contents of this file may be used under the terms of the }
30 { GNU Lesser General Public License (the "LGPL License"), in which case the }
31 { provisions of the LGPL License are applicable instead of those above. }
32 { If you wish to allow use of your version of this file only under the terms }
33 { of the LGPL License and not to allow others to use your version of this file }
34 { under the MPL, indicate your decision by deleting the provisions above and }
35 { replace them with the notice and other provisions required by the LGPL }
36 { License. If you do not delete the provisions above, a recipient may use }
37 { your version of this file under either the MPL or the LGPL License. }
38 { }
39 { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
40 { }
41 {******************************************************************************}
42
43 // $Id: JwaPdh.pas,v 1.15 2007/09/14 06:48:46 marquardt Exp $
44 {$IFNDEF JWA_OMIT_SECTIONS}
45 unit JwaPdh;
46
47 {$WEAKPACKAGEUNIT}
48 {$ENDIF JWA_OMIT_SECTIONS}
49
50 {$HPPEMIT ''}
51 {$HPPEMIT '#include "pdh.h"'}
52 {$HPPEMIT ''}
53
54 {$IFNDEF JWA_OMIT_SECTIONS}
55 {$I jediapilib.inc}
56
57 interface
58
59 uses
60 JwaWinBase, JwaWinType, JwaWinPerf;
61 {$ENDIF JWA_OMIT_SECTIONS}
62
63 {$IFNDEF JWA_IMPLEMENTATIONSECTION}
64 type
65 PDH_STATUS = DWORD;
66 {$EXTERNALSYM PDH_STATUS}
67
68 const
69
70 // version info
71
72 PDH_CVERSION_WIN40 = DWORD($0400);
73 {$EXTERNALSYM PDH_CVERSION_WIN40}
74 PDH_CVERSION_WIN50 = DWORD($0500);
75 {$EXTERNALSYM PDH_CVERSION_WIN50}
76
77 // v1.1 revision of PDH -- basic log functions
78 // v1.2 of the PDH -- adds variable instance counters
79 // v1.3 of the PDH -- adds log service control & stubs for NT5/PDH v2 fn's
80 // v2.0 of the PDH -- is the NT v 5.0 B2 version
81
82 PDH_VERSION = DWORD((PDH_CVERSION_WIN50) + $0003);
83 {$EXTERNALSYM PDH_VERSION}
84
85 // define severity masks
86
87 function IsSuccessSeverity(ErrorCode: Longint): Boolean;
88 {$EXTERNALSYM IsSuccessSeverity}
89 function IsInformationalSeverity(ErrorCode: Longint): Boolean;
90 {$EXTERNALSYM IsInformationalSeverity}
91 function IsWarningSeverity(ErrorCode: Longint): Boolean;
92 {$EXTERNALSYM IsWarningSeverity}
93 function IsErrorSeverity(ErrorCode: Longint): Boolean;
94 {$EXTERNALSYM IsErrorSeverity}
95
96 const
97 MAX_COUNTER_PATH = 256; // Maximum counter path length
98 {$EXTERNALSYM MAX_COUNTER_PATH}
99
100 PDH_MAX_COUNTER_NAME = 1024; // Maximum counter name length.
101 {$EXTERNALSYM PDH_MAX_COUNTER_NAME}
102 PDH_MAX_INSTANCE_NAME = 1024; // Maximum counter instance name length.
103 {$EXTERNALSYM PDH_MAX_INSTANCE_NAME}
104 PDH_MAX_COUNTER_PATH = 2048; // Maximum full counter path length.
105 {$EXTERNALSYM PDH_MAX_COUNTER_PATH}
106 PDH_MAX_DATASOURCE_PATH = 1024; // MAximum full counter log name length.
107 {$EXTERNALSYM PDH_MAX_DATASOURCE_PATH}
108
109 // data type definitions
110
111 type
112 PDH_HCOUNTER = HANDLE;
113 {$EXTERNALSYM PDH_HCOUNTER}
114 PDH_HQUERY = HANDLE;
115 {$EXTERNALSYM PDH_HQUERY}
116 PDH_HLOG = HANDLE;
117 {$EXTERNALSYM PDH_HLOG}
118
119 HCOUNTER = PDH_HCOUNTER;
120 {$EXTERNALSYM HCOUNTER}
121 HQUERY = PDH_HQUERY;
122 {$EXTERNALSYM HQUERY}
123 {$IFNDEF JWA_INCLUDEMODE}
124 HLOG = PDH_HLOG;
125 {$EXTERNALSYM HLOG}
126 {$ENDIF JWA_INCLUDEMODE}
127
128 const
129 {$IFNDEF JWA_INCLUDEMODE}
130 INVALID_HANDLE_VALUE = HANDLE(LONG_PTR(-1));
131 {$EXTERNALSYM INVALID_HANDLE_VALUE}
132 {$ENDIF JWA_INCLUDEMODE}
133
134 H_REALTIME_DATASOURCE = NULL;
135 {$EXTERNALSYM H_REALTIME_DATASOURCE}
136 H_WBEM_DATASOURCE = INVALID_HANDLE_VALUE;
137 {$EXTERNALSYM H_WBEM_DATASOURCE}
138
139 type
140 PPDH_RAW_COUNTER = ^PDH_RAW_COUNTER;
141 {$EXTERNALSYM PPDH_RAW_COUNTER}
142 _PDH_RAW_COUNTER = record
143 CStatus: DWORD;
144 TimeStamp: FILETIME;
145 FirstValue: LONGLONG;
146 SecondValue: LONGLONG;
147 MultiCount: DWORD;
148 end;
149 {$EXTERNALSYM _PDH_RAW_COUNTER}
150 PDH_RAW_COUNTER = _PDH_RAW_COUNTER;
151 {$EXTERNALSYM PDH_RAW_COUNTER}
152 TPdhRawCounter = PDH_RAW_COUNTER;
153 PPdhRawCounter = PPDH_RAW_COUNTER;
154
155 PPDH_RAW_COUNTER_ITEM_A = ^PDH_RAW_COUNTER_ITEM_A;
156 {$EXTERNALSYM PPDH_RAW_COUNTER_ITEM_A}
157 _PDH_RAW_COUNTER_ITEM_A = record
158 szName: LPSTR;
159 RawValue: PDH_RAW_COUNTER;
160 end;
161 {$EXTERNALSYM _PDH_RAW_COUNTER_ITEM_A}
162 PDH_RAW_COUNTER_ITEM_A = _PDH_RAW_COUNTER_ITEM_A;
163 {$EXTERNALSYM PDH_RAW_COUNTER_ITEM_A}
164 TPdhRawCounterItemA = PDH_RAW_COUNTER_ITEM_A;
165 PPdhRawCounterItemA = PPDH_RAW_COUNTER_ITEM_A;
166
167 PPDH_RAW_COUNTER_ITEM_W = ^PDH_RAW_COUNTER_ITEM_W;
168 {$EXTERNALSYM PPDH_RAW_COUNTER_ITEM_W}
169 _PDH_RAW_COUNTER_ITEM_W = record
170 szName: LPWSTR;
171 RawValue: PDH_RAW_COUNTER;
172 end;
173 {$EXTERNALSYM _PDH_RAW_COUNTER_ITEM_W}
174 PDH_RAW_COUNTER_ITEM_W = _PDH_RAW_COUNTER_ITEM_W;
175 {$EXTERNALSYM PDH_RAW_COUNTER_ITEM_W}
176 TPdhRawCounterItemW = PDH_RAW_COUNTER_ITEM_W;
177 PPdhRawCounterItemW = PPDH_RAW_COUNTER_ITEM_W;
178
179 {$IFDEF UNICODE}
180 PPdhRawCounterItem = PPdhRawCounterItemW;
181 PDH_RAW_COUNTER_ITEM = _PDH_RAW_COUNTER_ITEM_W;
182 {$EXTERNALSYM PDH_RAW_COUNTER_ITEM}
183 PPDH_RAW_COUNTER_ITEM = PPDH_RAW_COUNTER_ITEM_W;
184 {$EXTERNALSYM PPDH_RAW_COUNTER_ITEM}
185 TPdhRawCounterItem = _PDH_RAW_COUNTER_ITEM_W;
186 {$ELSE}
187 PPdhRawCounterItem = PPdhRawCounterItemA;
188 PDH_RAW_COUNTER_ITEM = _PDH_RAW_COUNTER_ITEM_A;
189 {$EXTERNALSYM PDH_RAW_COUNTER_ITEM}
190 PPDH_RAW_COUNTER_ITEM = PPDH_RAW_COUNTER_ITEM_A;
191 {$EXTERNALSYM PPDH_RAW_COUNTER_ITEM}
192 TPdhRawCounterItem = _PDH_RAW_COUNTER_ITEM_A;
193 {$ENDIF UNICODE}
194
195 PPDH_FMT_COUNTERVALUE = ^PDH_FMT_COUNTERVALUE;
196 {$EXTERNALSYM PPDH_FMT_COUNTERVALUE}
197 _PDH_FMT_COUNTERVALUE = record
198 CStatus: DWORD;
199 case Longint of
200 1: (longValue: LONG);
201 2: (doubleValue: Double);
202 3: (largeValue: LONGLONG);
203 4: (AnsiStringValue: LPSTR);
204 5: (WideStringValue: LPCWSTR);
205 end;
206 {$EXTERNALSYM _PDH_FMT_COUNTERVALUE}
207 PDH_FMT_COUNTERVALUE = _PDH_FMT_COUNTERVALUE;
208 {$EXTERNALSYM PDH_FMT_COUNTERVALUE}
209 TPdhFmtCounterValue = PDH_FMT_COUNTERVALUE;
210 PPdhFmtCounterValue = PPDH_FMT_COUNTERVALUE;
211
212 PPDH_FMT_COUNTERVALUE_ITEM_A = ^PDH_FMT_COUNTERVALUE_ITEM_A;
213 {$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM_A}
214 _PDH_FMT_COUNTERVALUE_ITEM_A = record
215 szName: LPSTR;
216 FmtValue: PDH_FMT_COUNTERVALUE;
217 end;
218 {$EXTERNALSYM _PDH_FMT_COUNTERVALUE_ITEM_A}
219 PDH_FMT_COUNTERVALUE_ITEM_A = _PDH_FMT_COUNTERVALUE_ITEM_A;
220 {$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM_A}
221 TPdhFmtCounterValueItemA = PDH_FMT_COUNTERVALUE_ITEM_A;
222 PPdhFmtCounterValueItemA = PPDH_FMT_COUNTERVALUE_ITEM_A;
223
224 PPDH_FMT_COUNTERVALUE_ITEM_W = ^PDH_FMT_COUNTERVALUE_ITEM_W;
225 {$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM_W}
226 _PDH_FMT_COUNTERVALUE_ITEM_W = record
227 szName: LPWSTR;
228 FmtValue: PDH_FMT_COUNTERVALUE;
229 end;
230 {$EXTERNALSYM _PDH_FMT_COUNTERVALUE_ITEM_W}
231 PDH_FMT_COUNTERVALUE_ITEM_W = _PDH_FMT_COUNTERVALUE_ITEM_W;
232 {$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM_W}
233 TPdhFmtCounterValueItemW = PDH_FMT_COUNTERVALUE_ITEM_W;
234 PPdhFmtCounterValueItemW = PPDH_FMT_COUNTERVALUE_ITEM_W;
235
236 {$IFDEF UNICODE}
237 PPdhFmtCounterValueItem = PPdhFmtCounterValueItemW;
238 PDH_FMT_COUNTERVALUE_ITEM = _PDH_FMT_COUNTERVALUE_ITEM_W;
239 {$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM}
240 PPDH_FMT_COUNTERVALUE_ITEM = PPDH_FMT_COUNTERVALUE_ITEM_W;
241 {$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM}
242 TPdhFmtCounterValueItem = _PDH_FMT_COUNTERVALUE_ITEM_W;
243 {$ELSE}
244 PPdhFmtCounterValueItem = PPdhFmtCounterValueItemA;
245 PDH_FMT_COUNTERVALUE_ITEM = _PDH_FMT_COUNTERVALUE_ITEM_A;
246 {$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM}
247 PPDH_FMT_COUNTERVALUE_ITEM = PPDH_FMT_COUNTERVALUE_ITEM_A;
248 {$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM}
249 TPdhFmtCounterValueItem = _PDH_FMT_COUNTERVALUE_ITEM_A;
250 {$ENDIF UNICODE}
251
252 PPDH_STATISTICS = ^PDH_STATISTICS;
253 {$EXTERNALSYM PPDH_STATISTICS}
254 _PDH_STATISTICS = record
255 dwFormat: DWORD;
256 Count: DWORD;
257 min: PDH_FMT_COUNTERVALUE;
258 max: PDH_FMT_COUNTERVALUE;
259 mean: PDH_FMT_COUNTERVALUE;
260 end;
261 {$EXTERNALSYM _PDH_STATISTICS}
262 PDH_STATISTICS = _PDH_STATISTICS;
263 {$EXTERNALSYM PDH_STATISTICS}
264 TPdhStatistics = PDH_STATISTICS;
265 PPdhStatistics = PPDH_STATISTICS;
266
267 PPDH_COUNTER_PATH_ELEMENTS_A = ^PDH_COUNTER_PATH_ELEMENTS_A;
268 {$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS_A}
269 _PDH_COUNTER_PATH_ELEMENTS_A = record
270 szMachineName: LPSTR;
271 szObjectName: LPSTR;
272 szInstanceName: LPSTR;
273 szParentInstance: LPSTR;
274 dwInstanceIndex: DWORD;
275 szCounterName: LPSTR;
276 end;
277 {$EXTERNALSYM _PDH_COUNTER_PATH_ELEMENTS_A}
278 PDH_COUNTER_PATH_ELEMENTS_A = _PDH_COUNTER_PATH_ELEMENTS_A;
279 {$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS_A}
280 TPdhCounterPathElementsA = PDH_COUNTER_PATH_ELEMENTS_A;
281 PPdhCounterPathElementsA = PPDH_COUNTER_PATH_ELEMENTS_A;
282
283 PPDH_COUNTER_PATH_ELEMENTS_W = ^PDH_COUNTER_PATH_ELEMENTS_W;
284 {$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS_W}
285 _PDH_COUNTER_PATH_ELEMENTS_W = record
286 szMachineName: LPWSTR;
287 szObjectName: LPWSTR;
288 szInstanceName: LPWSTR;
289 szParentInstance: LPWSTR;
290 dwInstanceIndex: DWORD;
291 szCounterName: LPWSTR;
292 end;
293 {$EXTERNALSYM _PDH_COUNTER_PATH_ELEMENTS_W}
294 PDH_COUNTER_PATH_ELEMENTS_W = _PDH_COUNTER_PATH_ELEMENTS_W;
295 {$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS_W}
296 TPdhCounterPathElementsW = PDH_COUNTER_PATH_ELEMENTS_W;
297 PPdhCounterPathElementsW = PPDH_COUNTER_PATH_ELEMENTS_W;
298
299 {$IFDEF UNICODE}
300 PPdhCounterPathElements = PPdhCounterPathElementsW;
301 PDH_COUNTER_PATH_ELEMENTS = _PDH_COUNTER_PATH_ELEMENTS_W;
302 {$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS}
303 PPDH_COUNTER_PATH_ELEMENTS = PPDH_COUNTER_PATH_ELEMENTS_W;
304 {$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS}
305 TPdhCounterPathElements = _PDH_COUNTER_PATH_ELEMENTS_W;
306 {$ELSE}
307 PPdhCounterPathElements = PPdhCounterPathElementsA;
308 PDH_COUNTER_PATH_ELEMENTS = _PDH_COUNTER_PATH_ELEMENTS_A;
309 {$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS}
310 PPDH_COUNTER_PATH_ELEMENTS = PPDH_COUNTER_PATH_ELEMENTS_A;
311 {$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS}
312 TPdhCounterPathElements = _PDH_COUNTER_PATH_ELEMENTS_A;
313 {$ENDIF UNICODE}
314
315 PPDH_DATA_ITEM_PATH_ELEMENTS_A = ^PDH_DATA_ITEM_PATH_ELEMENTS_A;
316 {$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS_A}
317 _PDH_DATA_ITEM_PATH_ELEMENTS_A = record
318 szMachineName: LPSTR;
319 ObjectGUID: GUID;
320 dwItemId: DWORD;
321 szInstanceName: LPSTR;
322 end;
323 {$EXTERNALSYM _PDH_DATA_ITEM_PATH_ELEMENTS_A}
324 PDH_DATA_ITEM_PATH_ELEMENTS_A = _PDH_DATA_ITEM_PATH_ELEMENTS_A;
325 {$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS_A}
326 TPdhDataItemPathElementsA = PDH_DATA_ITEM_PATH_ELEMENTS_A;
327 PPdhDataItemPathElementsA = PPDH_DATA_ITEM_PATH_ELEMENTS_A;
328
329 PPDH_DATA_ITEM_PATH_ELEMENTS_W = ^PDH_DATA_ITEM_PATH_ELEMENTS_W;
330 {$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS_W}
331 _PDH_DATA_ITEM_PATH_ELEMENTS_W = record
332 szMachineName: LPWSTR;
333 ObjectGUID: GUID;
334 dwItemId: DWORD;
335 szInstanceName: LPWSTR;
336 end;
337 {$EXTERNALSYM _PDH_DATA_ITEM_PATH_ELEMENTS_W}
338 PDH_DATA_ITEM_PATH_ELEMENTS_W = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
339 {$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS_W}
340 TPdhDataItemPathElementsW = PDH_DATA_ITEM_PATH_ELEMENTS_W;
341 PPdhDataItemPathElementsW = PPDH_DATA_ITEM_PATH_ELEMENTS_W;
342
343 {$IFDEF UNICODE}
344 PPdhDataItemPathElements = PPdhDataItemPathElementsW;
345 PDH_DATA_ITEM_PATH_ELEMENTS = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
346 {$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS}
347 PPDH_DATA_ITEM_PATH_ELEMENTS = PPDH_DATA_ITEM_PATH_ELEMENTS_W;
348 {$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS}
349 TPdhDataItemPathElements = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
350 {$ELSE}
351 PPdhDataItemPathElements = PPdhDataItemPathElementsA;
352 PDH_DATA_ITEM_PATH_ELEMENTS = _PDH_DATA_ITEM_PATH_ELEMENTS_A;
353 {$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS}
354 PPDH_DATA_ITEM_PATH_ELEMENTS = PPDH_DATA_ITEM_PATH_ELEMENTS_A;
355 {$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS}
356 TPdhDataItemPathElements = _PDH_DATA_ITEM_PATH_ELEMENTS_A;
357 {$ENDIF UNICODE}
358
359 PPDH_COUNTER_INFO_A = ^PDH_COUNTER_INFO_A;
360 {$EXTERNALSYM PPDH_COUNTER_INFO_A}
361 _PDH_COUNTER_INFO_A = record
362 dwLength: DWORD;
363 dwType: DWORD;
364 CVersion: DWORD;
365 CStatus: DWORD;
366 lScale: LONG;
367 lDefaultScale: LONG;
368 dwUserData: DWORD_PTR;
369 dwQueryUserData: DWORD_PTR;
370 szFullPath: LPSTR;
371 Union: record
372 case Longint of
373 1: (DataItemPath: PDH_DATA_ITEM_PATH_ELEMENTS_A);
374 2: (CounterPath: PDH_COUNTER_PATH_ELEMENTS_A);
375 3: (szMachineName: LPSTR;
376 szObjectName: LPSTR;
377 szInstanceName: LPSTR;
378 szParentInstance: LPSTR;
379 dwInstanceIndex: DWORD;
380 szCounterName: LPSTR);
381 end;
382 szExplainText: LPSTR;
383 DataBuffer: array [0..0] of DWORD;
384 end;
385 {$EXTERNALSYM _PDH_COUNTER_INFO_A}
386 PDH_COUNTER_INFO_A = _PDH_COUNTER_INFO_A;
387 {$EXTERNALSYM PDH_COUNTER_INFO_A}
388 TPdhCounterInfoA = PDH_COUNTER_INFO_A;
389 PPdhCounterInfoA = PPDH_COUNTER_INFO_A;
390
391 PPDH_COUNTER_INFO_W = ^PDH_COUNTER_INFO_W;
392 {$EXTERNALSYM PPDH_COUNTER_INFO_W}
393 _PDH_COUNTER_INFO_W = record
394 dwLength: DWORD;
395 dwType: DWORD;
396 CVersion: DWORD;
397 CStatus: DWORD;
398 lScale: LONG;
399 lDefaultScale: LONG;
400 dwUserData: DWORD_PTR;
401 dwQueryUserData: DWORD_PTR;
402 szFullPath: LPWSTR;
403 Union: record
404 case Longint of
405 1: (DataItemPath: PDH_DATA_ITEM_PATH_ELEMENTS_W);
406 2: (CounterPath: PDH_COUNTER_PATH_ELEMENTS_W);
407 3: (szMachineName: LPWSTR;
408 szObjectName: LPWSTR;
409 szInstanceName: LPWSTR;
410 szParentInstance: LPWSTR;
411 dwInstanceIndex: DWORD;
412 szCounterName: LPWSTR);
413 end;
414 szExplainText: LPWSTR;
415 DataBuffer: array [0..0] of DWORD;
416 end;
417 {$EXTERNALSYM _PDH_COUNTER_INFO_W}
418 PDH_COUNTER_INFO_W = _PDH_COUNTER_INFO_W;
419 {$EXTERNALSYM PDH_COUNTER_INFO_W}
420 TPdhCounterInfoW = PDH_COUNTER_INFO_W;
421 PPdhCounterInfoW = PPDH_COUNTER_INFO_W;
422
423 {$IFDEF UNICODE}
424 PPdhCounterInfo = PPdhCounterInfoW;
425 PDH_COUNTER_INFO = _PDH_COUNTER_INFO_W;
426 {$EXTERNALSYM PDH_COUNTER_INFO}
427 PPDH_COUNTER_INFO = PPDH_COUNTER_INFO_W;
428 {$EXTERNALSYM PPDH_COUNTER_INFO}
429 TPdhCounterInfo = _PDH_COUNTER_INFO_W;
430 {$ELSE}
431 PPdhCounterInfo = PPdhCounterInfoA;
432 PDH_COUNTER_INFO = _PDH_COUNTER_INFO_A;
433 {$EXTERNALSYM PDH_COUNTER_INFO}
434 PPDH_COUNTER_INFO = PPDH_COUNTER_INFO_A;
435 {$EXTERNALSYM PPDH_COUNTER_INFO}
436 TPdhCounterInfo = _PDH_COUNTER_INFO_A;
437 {$ENDIF UNICODE}
438
439 PPDH_TIME_INFO = ^PDH_TIME_INFO;
440 {$EXTERNALSYM PPDH_TIME_INFO}
441 _PDH_TIME_INFO = record
442 StartTime: LONGLONG;
443 EndTime: LONGLONG;
444 SampleCount: DWORD;
445 end;
446 {$EXTERNALSYM _PDH_TIME_INFO}
447 PDH_TIME_INFO = _PDH_TIME_INFO;
448 {$EXTERNALSYM PDH_TIME_INFO}
449 TPdhTimeInfo = PDH_TIME_INFO;
450 PPdhTimeInfo = PPDH_TIME_INFO;
451
452 PPDH_RAW_LOG_RECORD = ^PDH_RAW_LOG_RECORD;
453 {$EXTERNALSYM PPDH_RAW_LOG_RECORD}
454 _PDH_RAW_LOG_RECORD = record
455 dwStructureSize: DWORD;
456 dwRecordType: DWORD;
457 dwItems: DWORD;
458 RawBytes: array [0..0] of UCHAR;
459 end;
460 {$EXTERNALSYM _PDH_RAW_LOG_RECORD}
461 PDH_RAW_LOG_RECORD = _PDH_RAW_LOG_RECORD;
462 {$EXTERNALSYM PDH_RAW_LOG_RECORD}
463 TPdhRawLogRecord = PDH_RAW_LOG_RECORD;
464 PPdhRawLogRecord = PPDH_RAW_LOG_RECORD;
465
466 PPDH_LOG_SERVICE_QUERY_INFO_A = ^PDH_LOG_SERVICE_QUERY_INFO_A;
467 {$EXTERNALSYM PPDH_LOG_SERVICE_QUERY_INFO_A}
468 _PDH_LOG_SERVICE_QUERY_INFO_A = record
469 dwSize: DWORD;
470 dwFlags: DWORD;
471 dwLogQuota: DWORD;
472 szLogFileCaption: LPSTR;
473 szDefaultDir: LPSTR;
474 szBaseFileName: LPSTR;
475 dwFileType: DWORD;
476 dwReserved: DWORD;
477 Union: record
478 case Longint of
479 1: (PdlAutoNameInterval: DWORD;
480 PdlAutoNameUnits: DWORD;
481 PdlCommandFilename: LPSTR;
482 PdlCounterList: LPSTR;
483 PdlAutoNameFormat: DWORD;
484 PdlSampleInterval: DWORD;
485 PdlLogStartTime: FILETIME;
486 PdlLogEndTime: FILETIME);
487 2: (TlNumberOfBuffers: DWORD;
488 TlMinimumBuffers: DWORD;
489 TlMaximumBuffers: DWORD;
490 TlFreeBuffers: DWORD;
491 TlBufferSize: DWORD;
492 TlEventsLost: DWORD;
493 TlLoggerThreadId: DWORD;
494 TlBuffersWritten: DWORD;
495 TlLogHandle: DWORD;
496 TlLogFileName: LPSTR);
497 end;
498 end;
499 {$EXTERNALSYM _PDH_LOG_SERVICE_QUERY_INFO_A}
500 PDH_LOG_SERVICE_QUERY_INFO_A = _PDH_LOG_SERVICE_QUERY_INFO_A;
501 {$EXTERNALSYM _PDH_LOG_SERVICE_QUERY_INFO_A}
502 TPdhLogServiceQueryInfoA = PDH_LOG_SERVICE_QUERY_INFO_A;
503 PPdhLogServiceQueryInfoA = PPDH_LOG_SERVICE_QUERY_INFO_A;
504
505 PPDH_LOG_SERVICE_QUERY_INFO_W = ^PDH_LOG_SERVICE_QUERY_INFO_W;
506 {$EXTERNALSYM PPDH_LOG_SERVICE_QUERY_INFO_W}
507 _PDH_LOG_SERVICE_QUERY_INFO_W = record
508 dwSize: DWORD;
509 dwFlags: DWORD;
510 dwLogQuota: DWORD;
511 szLogFileCaption: LPWSTR;
512 szDefaultDir: LPWSTR;
513 szBaseFileName: LPWSTR;
514 dwFileType: DWORD;
515 dwReserved: DWORD;
516 Union: record
517 case Longint of
518 1: (PdlAutoNameInterval: DWORD;
519 PdlAutoNameUnits: DWORD;
520 PdlCommandFilename: LPWSTR;
521 PdlCounterList: LPWSTR;
522 PdlAutoNameFormat: DWORD;
523 PdlSampleInterval: DWORD;
524 PdlLogStartTime: FILETIME;
525 PdlLogEndTime: FILETIME);
526 2: (TlNumberOfBuffers: DWORD;
527 TlMinimumBuffers: DWORD;
528 TlMaximumBuffers: DWORD;
529 TlFreeBuffers: DWORD;
530 TlBufferSize: DWORD;
531 TlEventsLost: DWORD;
532 TlLoggerThreadId: DWORD;
533 TlBuffersWritten: DWORD;
534 TlLogHandle: DWORD;
535 TlLogFileName: LPWSTR);
536 end;
537 end;
538 {$EXTERNALSYM _PDH_LOG_SERVICE_QUERY_INFO_W}
539 PDH_LOG_SERVICE_QUERY_INFO_W = _PDH_LOG_SERVICE_QUERY_INFO_W;
540 {$EXTERNALSYM PDH_LOG_SERVICE_QUERY_INFO_W}
541 TPdhLogServiceQueryInfoW = PDH_LOG_SERVICE_QUERY_INFO_W;
542 PPdhLogServiceQueryInfoW = PPDH_LOG_SERVICE_QUERY_INFO_W;
543
544 {$IFDEF UNICODE}
545 PPdhLogServiceQueryInfo = PPdhLogServiceQueryInfoW;
546 PDH_LOG_SERVICE_QUERY_INFO = _PDH_LOG_SERVICE_QUERY_INFO_W;
547 {$EXTERNALSYM PDH_LOG_SERVICE_QUERY_INFO}
548 PPDH_LOG_SERVICE_QUERY_INFO = PPDH_LOG_SERVICE_QUERY_INFO_W;
549 {$EXTERNALSYM PPDH_LOG_SERVICE_QUERY_INFO}
550 TPdhLogServiceQueryInfo = _PDH_LOG_SERVICE_QUERY_INFO_W;
551 {$ELSE}
552 PPdhLogServiceQueryInfo = PPdhLogServiceQueryInfoA;
553 PDH_LOG_SERVICE_QUERY_INFO = _PDH_LOG_SERVICE_QUERY_INFO_A;
554 {$EXTERNALSYM PDH_LOG_SERVICE_QUERY_INFO}
555 PPDH_LOG_SERVICE_QUERY_INFO = PPDH_LOG_SERVICE_QUERY_INFO_A;
556 {$EXTERNALSYM PPDH_LOG_SERVICE_QUERY_INFO}
557 TPdhLogServiceQueryInfo = _PDH_LOG_SERVICE_QUERY_INFO_A;
558 {$ENDIF UNICODE}
559
560 //
561 // Time value constants
562 //
563
564 const
565 MAX_TIME_VALUE = LONGLONG($7FFFFFFFFFFFFFFF);
566 {$EXTERNALSYM MAX_TIME_VALUE}
567 MIN_TIME_VALUE = LONGLONG(0);
568 {$EXTERNALSYM MIN_TIME_VALUE}
569
570 // function definitions
571
572 function PdhGetDllVersion(var lpdwVersion: DWORD): PDH_STATUS; stdcall;
573 {$EXTERNALSYM PdhGetDllVersion}
574
575 //
576 // Query Functions
577 //
578
579 function PdhOpenQueryA(szDataSource: LPCSTR; dwUserData: DWORD_PTR;
580 var phQuery: PDH_HQUERY): PDH_STATUS; stdcall;
581 {$EXTERNALSYM PdhOpenQueryA}
582 function PdhOpenQueryW(szDataSource: LPCWSTR; dwUserData: DWORD_PTR;
583 var phQuery: PDH_HQUERY): PDH_STATUS; stdcall;
584 {$EXTERNALSYM PdhOpenQueryW}
585 function PdhOpenQuery(szDataSource: LPCTSTR; dwUserData: DWORD_PTR;
586 var phQuery: PDH_HQUERY): PDH_STATUS; stdcall;
587 {$EXTERNALSYM PdhOpenQuery}
588
589 function PdhAddCounterA(hQuery: PDH_HQUERY; szFullCounterPath: LPCSTR;
590 dwUserData: DWORD_PTR; var phCounter: PDH_HCOUNTER): PDH_STATUS; stdcall;
591 {$EXTERNALSYM PdhAddCounterA}
592 function PdhAddCounterW(hQuery: PDH_HQUERY; szFullCounterPath: LPCWSTR;
593 dwUserData: DWORD_PTR; var phCounter: PDH_HCOUNTER): PDH_STATUS; stdcall;
594 {$EXTERNALSYM PdhAddCounterW}
595 function PdhAddCounter(hQuery: PDH_HQUERY; szFullCounterPath: LPCTSTR;
596 dwUserData: DWORD_PTR; var phCounter: PDH_HCOUNTER): PDH_STATUS; stdcall;
597 {$EXTERNALSYM PdhAddCounter}
598
599 function PdhRemoveCounter(hCounter: PDH_HCOUNTER): PDH_STATUS; stdcall;
600 {$EXTERNALSYM PdhRemoveCounter}
601
602 function PdhCollectQueryData(hQuery: PDH_HQUERY): PDH_STATUS; stdcall;
603 {$EXTERNALSYM PdhCollectQueryData}
604
605 function PdhCloseQuery(hQuery: PDH_HQUERY): PDH_STATUS; stdcall;
606 {$EXTERNALSYM PdhCloseQuery}
607
608 //
609 // Counter Functions
610 //
611
612 function PdhGetFormattedCounterValue(hCounter: PDH_HCOUNTER; dwFormat: DWORD;
613 lpdwType: LPDWORD; var pValue: PDH_FMT_COUNTERVALUE): PDH_STATUS; stdcall;
614 {$EXTERNALSYM PdhGetFormattedCounterValue}
615
616 function PdhGetFormattedCounterArrayA(hCounter: PDH_HCOUNTER; dwFormat: DWORD;
617 var lpdwBufferSize, lpdwItemCount: DWORD;
618 var ItemBuffer: PDH_FMT_COUNTERVALUE_ITEM_A): PDH_STATUS; stdcall;
619 {$EXTERNALSYM PdhGetFormattedCounterArrayA}
620 function PdhGetFormattedCounterArrayW(hCounter: PDH_HCOUNTER; dwFormat: DWORD;
621 var lpdwBufferSize, lpdwItemCount: DWORD;
622 var ItemBuffer: PDH_FMT_COUNTERVALUE_ITEM_W): PDH_STATUS; stdcall;
623 {$EXTERNALSYM PdhGetFormattedCounterArrayW}
624 function PdhGetFormattedCounterArray(hCounter: PDH_HCOUNTER; dwFormat: DWORD;
625 var lpdwBufferSize, lpdwItemCount: DWORD;
626 var ItemBuffer: PDH_FMT_COUNTERVALUE_ITEM): PDH_STATUS; stdcall;
627 {$EXTERNALSYM PdhGetFormattedCounterArray}
628
629 // dwFormat flag values
630
631 const
632 PDH_FMT_RAW = DWORD($00000010);
633 {$EXTERNALSYM PDH_FMT_RAW}
634 PDH_FMT_ANSI = DWORD($00000020);
635 {$EXTERNALSYM PDH_FMT_ANSI}
636 PDH_FMT_UNICODE = DWORD($00000040);
637 {$EXTERNALSYM PDH_FMT_UNICODE}
638 PDH_FMT_LONG = DWORD($00000100);
639 {$EXTERNALSYM PDH_FMT_LONG}
640 PDH_FMT_DOUBLE = DWORD($00000200);
641 {$EXTERNALSYM PDH_FMT_DOUBLE}
642 PDH_FMT_LARGE = DWORD($00000400);
643 {$EXTERNALSYM PDH_FMT_LARGE}
644 PDH_FMT_NOSCALE = DWORD($00001000);
645 {$EXTERNALSYM PDH_FMT_NOSCALE}
646 PDH_FMT_1000 = DWORD($00002000);
647 {$EXTERNALSYM PDH_FMT_1000}
648 PDH_FMT_NODATA = DWORD($00004000);
649 {$EXTERNALSYM PDH_FMT_NODATA}
650 PDH_FMT_NOCAP100 = DWORD($00008000);
651 {$EXTERNALSYM PDH_FMT_NODATA}
652
653 PERF_DETAIL_COSTLY = DWORD($00010000);
654 {$EXTERNALSYM PERF_DETAIL_COSTLY}
655 PERF_DETAIL_STANDARD = DWORD($0000FFFF);
656 {$EXTERNALSYM PERF_DETAIL_STANDARD}
657
658 function PdhGetRawCounterValue(hCounter: PDH_HCOUNTER; lpdwType: LPDWORD;
659 var pValue: PDH_RAW_COUNTER): PDH_STATUS; stdcall;
660 {$EXTERNALSYM PdhGetRawCounterValue}
661
662 function PdhGetRawCounterArrayA(hCounter: PDH_HCOUNTER; var lpdwBufferSize,
663 lpdwItemCount: DWORD; var ItemBuffer: PDH_RAW_COUNTER_ITEM_A): PDH_STATUS; stdcall;
664 {$EXTERNALSYM PdhGetRawCounterArrayA}
665 function PdhGetRawCounterArrayW(hCounter: PDH_HCOUNTER; var lpdwBufferSize,
666 lpdwItemCount: DWORD; var ItemBuffer: PDH_RAW_COUNTER_ITEM_W): PDH_STATUS; stdcall;
667 {$EXTERNALSYM PdhGetRawCounterArrayW}
668 function PdhGetRawCounterArray(hCounter: PDH_HCOUNTER; var lpdwBufferSize,
669 lpdwItemCount: DWORD; var ItemBuffer: PDH_RAW_COUNTER_ITEM): PDH_STATUS; stdcall;
670 {$EXTERNALSYM PdhGetRawCounterArray}
671
672 function PdhCalculateCounterFromRawValue(hCounter: PDH_HCOUNTER; dwFormat: DWORD;
673 rawValue1, rawValue2: PPDH_RAW_COUNTER; var fmtValue: PDH_FMT_COUNTERVALUE): PDH_STATUS; stdcall;
674 {$EXTERNALSYM PdhCalculateCounterFromRawValue}
675
676 function PdhComputeCounterStatistics(hCounter: PDH_HCOUNTER; dwFormat, dwFirstEntry,
677 dwNumEntries: DWORD; lpRawValueArray: PPDH_RAW_COUNTER; var data: PDH_STATISTICS): PDH_STATUS; stdcall;
678 {$EXTERNALSYM PdhComputeCounterStatistics}
679
680 function PdhGetCounterInfoA(hCounter: PDH_HCOUNTER; bRetrieveExplainText: Boolean;
681 var pdwBufferSize: DWORD; lpBuffer: PPDH_COUNTER_INFO_A): PDH_STATUS; stdcall;
682 {$EXTERNALSYM PdhGetCounterInfoA}
683 function PdhGetCounterInfoW(hCounter: PDH_HCOUNTER; bRetrieveExplainText: Boolean;
684 var pdwBufferSize: DWORD; lpBuffer: PPDH_COUNTER_INFO_W): PDH_STATUS; stdcall;
685 {$EXTERNALSYM PdhGetCounterInfoW}
686 function PdhGetCounterInfo(hCounter: PDH_HCOUNTER; bRetrieveExplainText: Boolean;
687 var pdwBufferSize: DWORD; lpBuffer: PPDH_COUNTER_INFO): PDH_STATUS; stdcall;
688 {$EXTERNALSYM PdhGetCounterInfo}
689
690 const
691 PDH_MAX_SCALE = Longint(7);
692 {$EXTERNALSYM PDH_MAX_SCALE}
693 PDH_MIN_SCALE = Longint(-7);
694 {$EXTERNALSYM PDH_MIN_SCALE}
695
696 function PdhSetCounterScaleFactor(hCounter: PDH_HCOUNTER; lFactor: LONG): PDH_STATUS; stdcall;
697 {$EXTERNALSYM PdhSetCounterScaleFactor}
698
699 //
700 // Browsing and enumeration functions
701 //
702
703 function PdhConnectMachineA(szMachineName: LPCSTR): PDH_STATUS; stdcall;
704 {$EXTERNALSYM PdhConnectMachineA}
705 function PdhConnectMachineW(szMachineName: LPCWSTR): PDH_STATUS; stdcall;
706 {$EXTERNALSYM PdhConnectMachineW}
707 function PdhConnectMachine(szMachineName: LPCTSTR): PDH_STATUS; stdcall;
708 {$EXTERNALSYM PdhConnectMachine}
709
710 function PdhEnumMachinesA(szDataSource: LPCSTR; mszMachineList: LPSTR;
711 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
712 {$EXTERNALSYM PdhEnumMachinesA}
713 function PdhEnumMachinesW(szDataSource: LPCWSTR; mszMachineList: LPWSTR;
714 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
715 {$EXTERNALSYM PdhEnumMachinesW}
716 function PdhEnumMachines(szDataSource: LPCTSTR; mszMachineList: LPTSTR;
717 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
718 {$EXTERNALSYM PdhEnumMachines}
719
720 function PdhEnumObjectsA(szDataSource, szMachineName: LPCSTR; mszObjectList: LPSTR;
721 var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
722 {$EXTERNALSYM PdhEnumObjectsA}
723 function PdhEnumObjectsW(szDataSource, szMachineName: LPCWSTR; mszObjectList: LPWSTR;
724 var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
725 {$EXTERNALSYM PdhEnumObjectsW}
726 function PdhEnumObjects(szDataSource, szMachineName: LPCTSTR; mszObjectList: LPTSTR;
727 var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
728 {$EXTERNALSYM PdhEnumObjects}
729
730 function PdhEnumObjectItemsA(szDataSource, szMachineName, szObjectName: LPCSTR;
731 mszCounterList: LPSTR; var pcchCounterListLength: DWORD; mszInstanceList: LPSTR;
732 var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
733 {$EXTERNALSYM PdhEnumObjectItemsA}
734 function PdhEnumObjectItemsW(szDataSource, szMachineName, szObjectName: LPCWSTR;
735 mszCounterList: LPWSTR; var pcchCounterListLength: DWORD; mszInstanceList: LPWSTR;
736 var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
737 {$EXTERNALSYM PdhEnumObjectItemsW}
738 function PdhEnumObjectItems(szDataSource, szMachineName, szObjectName: LPCTSTR;
739 mszCounterList: LPTSTR; var pcchCounterListLength: DWORD; mszInstanceList: LPTSTR;
740 var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
741 {$EXTERNALSYM PdhEnumObjectItems}
742
743 const
744 PDH_OBJECT_HAS_INSTANCES = $00000001;
745 {$EXTERNALSYM PDH_OBJECT_HAS_INSTANCES}
746
747 function PdhMakeCounterPathA(pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_A;
748 szFullPathBuffer: LPSTR; var pcchBufferSize: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
749 {$EXTERNALSYM PdhMakeCounterPathA}
750 function PdhMakeCounterPathW(pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_W;
751 szFullPathBuffer: LPWSTR; var pcchBufferSize: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
752 {$EXTERNALSYM PdhMakeCounterPathW}
753 function PdhMakeCounterPath(pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS;
754 szFullPathBuffer: LPTSTR; var pcchBufferSize: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
755 {$EXTERNALSYM PdhMakeCounterPath}
756
757 // todo shouldn't pCounterPathElements be a pointer to ...?
758
PdhParseCounterPathAnull759 function PdhParseCounterPathA(szFullPathBuffer: LPCSTR;
760 pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_A; var pdwBufferSize: DWORD;
761 dwFlags: DWORD): PDH_STATUS; stdcall;
762 {$EXTERNALSYM PdhParseCounterPathA}
PdhParseCounterPathWnull763 function PdhParseCounterPathW(szFullPathBuffer: LPCWSTR;
764 pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_W; var pdwBufferSize: DWORD;
765 dwFlags: DWORD): PDH_STATUS; stdcall;
766 {$EXTERNALSYM PdhParseCounterPathW}
PdhParseCounterPathnull767 function PdhParseCounterPath(szFullPathBuffer: LPCTSTR;
768 pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS; var pdwBufferSize: DWORD;
769 dwFlags: DWORD): PDH_STATUS; stdcall;
770 {$EXTERNALSYM PdhParseCounterPath}
771
772 const
773 PDH_PATH_WBEM_RESULT = DWORD($00000001);
774 {$EXTERNALSYM PDH_PATH_WBEM_RESULT}
775 PDH_PATH_WBEM_INPUT = DWORD($00000002);
776 {$EXTERNALSYM PDH_PATH_WBEM_INPUT}
777
PDH_PATH_LANG_FLAGSnull778 function PDH_PATH_LANG_FLAGS(LangId, Flags: DWORD): DWORD;
779 {$EXTERNALSYM PDH_PATH_LANG_FLAGS}
780
PdhParseInstanceNameAnull781 function PdhParseInstanceNameA(szInstanceString: LPSTR; szInstanceName: LPCSTR;
782 var pcchInstanceNameLength: DWORD; szParentName: LPSTR;
783 var pcchParentNameLength: DWORD; lpIndex: LPDWORD): PDH_STATUS; stdcall;
784 {$EXTERNALSYM PdhParseInstanceNameA}
PdhParseInstanceNameWnull785 function PdhParseInstanceNameW(szInstanceString: LPWSTR; szInstanceName: LPCWSTR;
786 var pcchInstanceNameLength: DWORD; szParentName: LPWSTR;
787 var pcchParentNameLength: DWORD; lpIndex: LPDWORD): PDH_STATUS; stdcall;
788 {$EXTERNALSYM PdhParseInstanceNameW}
PdhParseInstanceNamenull789 function PdhParseInstanceName(szInstanceString: LPTSTR; szInstanceName: LPCTSTR;
790 var pcchInstanceNameLength: DWORD; szParentName: LPTSTR;
791 var pcchParentNameLength: DWORD; lpIndex: LPDWORD): PDH_STATUS; stdcall;
792 {$EXTERNALSYM PdhParseInstanceName}
793
PdhValidatePathAnull794 function PdhValidatePathA(szFullPathBuffer: LPCSTR): PDH_STATUS; stdcall;
795 {$EXTERNALSYM PdhValidatePathA}
PdhValidatePathWnull796 function PdhValidatePathW(szFullPathBuffer: LPCWSTR): PDH_STATUS; stdcall;
797 {$EXTERNALSYM PdhValidatePathW}
PdhValidatePathnull798 function PdhValidatePath(szFullPathBuffer: LPCTSTR): PDH_STATUS; stdcall;
799 {$EXTERNALSYM PdhValidatePath}
800
PdhGetDefaultPerfObjectAnull801 function PdhGetDefaultPerfObjectA(szDataSource, szMachineName: LPCSTR;
802 szDefaultObjectName: LPSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
803 {$EXTERNALSYM PdhGetDefaultPerfObjectA}
PdhGetDefaultPerfObjectWnull804 function PdhGetDefaultPerfObjectW(szDataSource, szMachineName: LPCWSTR;
805 szDefaultObjectName: LPWSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
806 {$EXTERNALSYM PdhGetDefaultPerfObjectW}
PdhGetDefaultPerfObjectnull807 function PdhGetDefaultPerfObject(szDataSource, szMachineName: LPCTSTR;
808 szDefaultObjectName: LPTSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
809 {$EXTERNALSYM PdhGetDefaultPerfObject}
810
PdhGetDefaultPerfCounterAnull811 function PdhGetDefaultPerfCounterA(szDataSource, szMachineName, szObjectName: LPCSTR;
812 szDefaultCounterName: LPSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
813 {$EXTERNALSYM PdhGetDefaultPerfCounterA}
PdhGetDefaultPerfCounterWnull814 function PdhGetDefaultPerfCounterW(szDataSource, szMachineName, szObjectName: LPCWSTR;
815 szDefaultCounterName: LPWSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
816 {$EXTERNALSYM PdhGetDefaultPerfCounterW}
PdhGetDefaultPerfCounternull817 function PdhGetDefaultPerfCounter(szDataSource, szMachineName, szObjectName: LPCTSTR;
818 szDefaultCounterName: LPTSTR; var pcchBufferSize: DWORD): PDH_STATUS; stdcall;
819 {$EXTERNALSYM PdhGetDefaultPerfCounter}
820
821 type
wArgnull822 CounterPathCallBack = function(dwArg: DWORD_PTR): PDH_STATUS; stdcall;
823 {$EXTERNALSYM CounterPathCallBack}
824
825 const
826 PDH_CF_INCLUDEINSTANCEINDEX = 1 shl 0;
827 PDH_CF_SINGLECOUNTERPERADD = 1 shl 1;
828 PDH_CF_SINGLECOUNTERPERDIALOG = 1 shl 2;
829 PDH_CF_LOCALCOUNTERSONLY = 1 shl 3;
830 PDH_CF_WILDCARDINSTANCES = 1 shl 4;
831 PDH_CF_HIDEDETAILBOX = 1 shl 5;
832 PDH_CF_INITIALIZEPATH = 1 shl 6;
833 PDH_CF_DISABLEMACHINESELECTION = 1 shl 7;
834 PDH_CF_INCLUDECOSTLYOBJECTS = 1 shl 8;
835 PDH_CF_SHOWOBJECTBROWSER = 1 shl 9;
836 PDH_CF_RESERVED = DWORD($FFFFFD00);
837
838 type
839 _BrowseDlgConfig_HW = record
840 // Configuration flags
841 dwConfigFlags: DWORD;
842 hWndOwner: HWND;
843 hDataSource: PDH_HLOG;
844 szReturnPathBuffer: LPWSTR;
845 cchReturnPathLength: DWORD;
846 pCallBack: CounterPathCallBack;
847 dwCallBackArg: DWORD_PTR;
848 CallBackStatus: PDH_STATUS;
849 dwDefaultDetailLevel: DWORD;
850 szDialogBoxCaption: LPWSTR;
851 end;
852 {$EXTERNALSYM _BrowseDlgConfig_HW}
853 PDH_BROWSE_DLG_CONFIG_HW = _BrowseDlgConfig_HW;
854 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG_HW}
855 PPDH_BROWSE_DLG_CONFIG_HW = ^PDH_BROWSE_DLG_CONFIG_HW;
856 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG_HW}
857 TPdhBrowseDlgConfigHW = PDH_BROWSE_DLG_CONFIG_HW;
858 PPdhBrowseDlgConfigHW = PPDH_BROWSE_DLG_CONFIG_HW;
859
860 _BrowseDlgConfig_HA = record
861 // Configuration flags
862 dwConfigFlags: DWORD;
863 hWndOwner: HWND;
864 hDataSource: PDH_HLOG;
865 szReturnPathBuffer: LPSTR;
866 cchReturnPathLength: DWORD;
867 pCallBack: CounterPathCallBack;
868 dwCallBackArg: DWORD_PTR;
869 CallBackStatus: PDH_STATUS;
870 dwDefaultDetailLevel: DWORD;
871 szDialogBoxCaption: LPSTR;
872 end;
873 {$EXTERNALSYM _BrowseDlgConfig_HA}
874 PDH_BROWSE_DLG_CONFIG_HA = _BrowseDlgConfig_HA;
875 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG_HA}
876 PPDH_BROWSE_DLG_CONFIG_HA = ^PDH_BROWSE_DLG_CONFIG_HA;
877 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG_HA}
878 TPdhBrowseDlgConfigHA = PDH_BROWSE_DLG_CONFIG_HA;
879 PPdhBrowseDlgConfigHA = PPDH_BROWSE_DLG_CONFIG_HA;
880
881 {$IFDEF UNICODE}
882 PDH_BROWSE_DLG_CONFIG_H = PDH_BROWSE_DLG_CONFIG_HW;
883 PPDH_BROWSE_DLG_CONFIG_H = PPDH_BROWSE_DLG_CONFIG_HW;
884 {$ELSE}
885 PDH_BROWSE_DLG_CONFIG_H = PDH_BROWSE_DLG_CONFIG_HA;
886 PPDH_BROWSE_DLG_CONFIG_H = PPDH_BROWSE_DLG_CONFIG_HA;
887 {$ENDIF UNICODE}
888
889 PPDH_BROWSE_DLG_CONFIG_A = ^_BrowseDlgConfig_A;
890 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG_A}
891 _BrowseDlgConfig_A = record
892 dwConfigFlags: DWORD;
893 hWndOwner: HWND;
894 szDataSource: LPSTR;
895 szReturnPathBuffer: LPSTR;
896 cchReturnPathLength: DWORD;
897 pCallBack: CounterPathCallBack;
898 dwCallBackArg: DWORD_PTR;
899 CallBackStatus: PDH_STATUS;
900 dwDefaultDetailLevel: DWORD;
901 szDialogBoxCaption: LPSTR;
902 end;
903 {$EXTERNALSYM _BrowseDlgConfig_A}
904 PDH_BROWSE_DLG_CONFIG_A = _BrowseDlgConfig_A;
905 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG_A}
906 TPdhBrowseDlgConfigA = PDH_BROWSE_DLG_CONFIG_A;
907 PPdhBrowseDlgConfigA = PPDH_BROWSE_DLG_CONFIG_A;
908
909 PPDH_BROWSE_DLG_CONFIG_W = ^_BrowseDlgConfig_W;
910 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG_W}
911 _BrowseDlgConfig_W = record
912 dwConfigFlags: DWORD;
913 hWndOwner: HWND;
914 szDataSource: LPWSTR;
915 szReturnPathBuffer: LPWSTR;
916 cchReturnPathLength: DWORD;
917 pCallBack: CounterPathCallBack;
918 dwCallBackArg: DWORD_PTR;
919 CallBackStatus: PDH_STATUS;
920 dwDefaultDetailLevel: DWORD;
921 szDialogBoxCaption: LPWSTR;
922 end;
923 {$EXTERNALSYM _BrowseDlgConfig_W}
924 PDH_BROWSE_DLG_CONFIG_W = _BrowseDlgConfig_W;
925 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG_W}
926 TPdhBrowseDlgConfigW = PDH_BROWSE_DLG_CONFIG_W;
927 PPdhBrowseDlgConfigW = PPDH_BROWSE_DLG_CONFIG_W;
928
929 {$IFDEF UNICODE}
930 PPdhBrowseDlgConfig = PPdhBrowseDlgConfigW;
931 PDH_BROWSE_DLG_CONFIG = PDH_BROWSE_DLG_CONFIG_W;
932 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG}
933 PPDH_BROWSE_DLG_CONFIG = PPDH_BROWSE_DLG_CONFIG_W;
934 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG}
935 TPdhBrowseDlgConfig = TPdhBrowseDlgConfigW;
936 {$ELSE}
937 PPdhBrowseDlgConfig = PPdhBrowseDlgConfigA;
938 PDH_BROWSE_DLG_CONFIG = PDH_BROWSE_DLG_CONFIG_A;
939 {$EXTERNALSYM PDH_BROWSE_DLG_CONFIG}
940 PPDH_BROWSE_DLG_CONFIG = PPDH_BROWSE_DLG_CONFIG_A;
941 {$EXTERNALSYM PPDH_BROWSE_DLG_CONFIG}
942 TPdhBrowseDlgConfig = TPdhBrowseDlgConfigA;
943 {$ENDIF UNICODE}
944
PdhBrowseCountersAnull945 function PdhBrowseCountersA(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_A): PDH_STATUS; stdcall;
946 {$EXTERNALSYM PdhBrowseCountersA}
PdhBrowseCountersWnull947 function PdhBrowseCountersW(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_W): PDH_STATUS; stdcall;
948 {$EXTERNALSYM PdhBrowseCountersW}
PdhBrowseCountersnull949 function PdhBrowseCounters(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG): PDH_STATUS; stdcall;
950 {$EXTERNALSYM PdhBrowseCounters}
951
PdhExpandCounterPathAnull952 function PdhExpandCounterPathA(szWildCardPath: LPCSTR; mszExpandedPathList: LPSTR;
953 var pcchPathListLength: DWORD): PDH_STATUS; stdcall;
954 {$EXTERNALSYM PdhExpandCounterPathA}
PdhExpandCounterPathWnull955 function PdhExpandCounterPathW(szWildCardPath: LPCWSTR; mszExpandedPathList: LPWSTR;
956 var pcchPathListLength: DWORD): PDH_STATUS; stdcall;
957 {$EXTERNALSYM PdhExpandCounterPathW}
PdhExpandCounterPathnull958 function PdhExpandCounterPath(szWildCardPath: LPCTSTR; mszExpandedPathList: LPTSTR;
959 var pcchPathListLength: DWORD): PDH_STATUS; stdcall;
960 {$EXTERNALSYM PdhExpandCounterPath}
961
962 //
963 // v2.0 functions
964 //
965
PdhLookupPerfNameByIndexAnull966 function PdhLookupPerfNameByIndexA(szMachineName: LPCSTR; dwNameIndex: DWORD;
967 szNameBuffer: LPSTR; var pcchNameBufferSize: DWORD): PDH_STATUS; stdcall;
968 {$EXTERNALSYM PdhLookupPerfNameByIndexA}
PdhLookupPerfNameByIndexWnull969 function PdhLookupPerfNameByIndexW(szMachineName: LPCWSTR; dwNameIndex: DWORD;
970 szNameBuffer: LPWSTR; var pcchNameBufferSize: DWORD): PDH_STATUS; stdcall;
971 {$EXTERNALSYM PdhLookupPerfNameByIndexW}
PdhLookupPerfNameByIndexnull972 function PdhLookupPerfNameByIndex(szMachineName: LPCTSTR; dwNameIndex: DWORD;
973 szNameBuffer: LPTSTR; var pcchNameBufferSize: DWORD): PDH_STATUS; stdcall;
974 {$EXTERNALSYM PdhLookupPerfNameByIndex}
975
PdhLookupPerfIndexByNameAnull976 function PdhLookupPerfIndexByNameA(szMachineName, szNameBuffer: LPCSTR;
977 var pdwIndex: DWORD): PDH_STATUS; stdcall;
978 {$EXTERNALSYM PdhLookupPerfIndexByNameA}
PdhLookupPerfIndexByNameWnull979 function PdhLookupPerfIndexByNameW(szMachineName, szNameBuffer: LPCWSTR;
980 var pdwIndex: DWORD): PDH_STATUS; stdcall;
981 {$EXTERNALSYM PdhLookupPerfIndexByNameW}
PdhLookupPerfIndexByNamenull982 function PdhLookupPerfIndexByName(szMachineName, szNameBuffer: LPCTSTR;
983 var pdwIndex: DWORD): PDH_STATUS; stdcall;
984 {$EXTERNALSYM PdhLookupPerfIndexByName}
985
986 const
987 PDH_NOEXPANDCOUNTERS = 1;
988 {$EXTERNALSYM PDH_NOEXPANDCOUNTERS}
989 PDH_NOEXPANDINSTANCES = 2;
990 {$EXTERNALSYM PDH_NOEXPANDINSTANCES}
991 PDH_REFRESHCOUNTERS = 4;
992 {$EXTERNALSYM PDH_REFRESHCOUNTERS}
993
PdhExpandWildCardPathAnull994 function PdhExpandWildCardPathA(szDataSource, szWildCardPath: LPCSTR;
995 mszExpandedPathList: LPSTR; var pcchPathListLength: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
996 {$EXTERNALSYM PdhExpandWildCardPathA}
PdhExpandWildCardPathWnull997 function PdhExpandWildCardPathW(szDataSource, szWildCardPath: LPCWSTR;
998 mszExpandedPathList: LPWSTR; var pcchPathListLength: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
999 {$EXTERNALSYM PdhExpandWildCardPathW}
PdhExpandWildCardPathnull1000 function PdhExpandWildCardPath(szDataSource, szWildCardPath: LPCTSTR;
1001 mszExpandedPathList: LPTSTR; var pcchPathListLength: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
1002 {$EXTERNALSYM PdhExpandWildCardPath}
1003
1004 //
1005 // Logging Functions
1006 //
1007
1008 const
1009 PDH_LOG_READ_ACCESS = DWORD($00010000);
1010 {$EXTERNALSYM PDH_LOG_READ_ACCESS}
1011 PDH_LOG_WRITE_ACCESS = DWORD($00020000);
1012 {$EXTERNALSYM PDH_LOG_WRITE_ACCESS}
1013 PDH_LOG_UPDATE_ACCESS = DWORD($00040000);
1014 {$EXTERNALSYM PDH_LOG_UPDATE_ACCESS}
1015 PDH_LOG_ACCESS_MASK = DWORD($000F0000);
1016 {$EXTERNALSYM PDH_LOG_ACCESS_MASK}
1017
1018 PDH_LOG_CREATE_NEW = DWORD($00000001);
1019 {$EXTERNALSYM PDH_LOG_CREATE_NEW}
1020 PDH_LOG_CREATE_ALWAYS = DWORD($00000002);
1021 {$EXTERNALSYM PDH_LOG_CREATE_ALWAYS}
1022 PDH_LOG_OPEN_ALWAYS = DWORD($00000003);
1023 {$EXTERNALSYM PDH_LOG_OPEN_ALWAYS}
1024 PDH_LOG_OPEN_EXISTING = DWORD($00000004);
1025 {$EXTERNALSYM PDH_LOG_OPEN_EXISTING}
1026 PDH_LOG_CREATE_MASK = DWORD($0000000F);
1027 {$EXTERNALSYM PDH_LOG_CREATE_MASK}
1028
1029 PDH_LOG_OPT_USER_STRING = DWORD($01000000);
1030 {$EXTERNALSYM PDH_LOG_OPT_USER_STRING}
1031 PDH_LOG_OPT_CIRCULAR = DWORD($02000000);
1032 {$EXTERNALSYM PDH_LOG_OPT_CIRCULAR}
1033 PDH_LOG_OPT_MAX_IS_BYTES = DWORD($04000000);
1034 {$EXTERNALSYM PDH_LOG_OPT_MAX_IS_BYTES}
1035 PDH_LOG_OPT_APPEND = DWORD($08000000);
1036 {$EXTERNALSYM PDH_LOG_OPT_APPEND}
1037 PDH_LOG_OPT_MASK = DWORD($0F000000);
1038 {$EXTERNALSYM PDH_LOG_OPT_MASK}
1039
1040 PDH_LOG_TYPE_UNDEFINED = 0;
1041 {$EXTERNALSYM PDH_LOG_TYPE_UNDEFINED}
1042 PDH_LOG_TYPE_CSV = 1;
1043 {$EXTERNALSYM PDH_LOG_TYPE_CSV}
1044 PDH_LOG_TYPE_TSV = 2;
1045 {$EXTERNALSYM PDH_LOG_TYPE_TSV}
1046 //PDH_LOG_TYPE_BINARY = 3; // this is the retired binary format
1047 //{$EXTERNALSYM PDH_LOG_TYPE_BINARY}
1048 PDH_LOG_TYPE_TRACE_KERNEL = 4;
1049 {$EXTERNALSYM PDH_LOG_TYPE_TRACE_KERNEL}
1050 PDH_LOG_TYPE_TRACE_GENERIC = 5;
1051 {$EXTERNALSYM PDH_LOG_TYPE_TRACE_GENERIC}
1052 PDH_LOG_TYPE_PERFMON = 6;
1053 {$EXTERNALSYM PDH_LOG_TYPE_PERFMON}
1054 PDH_LOG_TYPE_SQL = 7;
1055 {$EXTERNALSYM PDH_LOG_TYPE_SQL}
1056 PDH_LOG_TYPE_BINARY = 8;
1057 {$EXTERNALSYM PDH_LOG_TYPE_BINARY}
1058
PdhOpenLogAnull1059 function PdhOpenLogA(szLogFileName: LPCSTR; dwAccessFlags: DWORD;
1060 lpdwLogType: LPDWORD; hQuery: PDH_HQUERY; dwMaxRecords: DWORD;
1061 szUserCaption: LPCSTR; var phLog: PDH_HLOG): PDH_STATUS; stdcall;
1062 {$EXTERNALSYM PdhOpenLogA}
PdhOpenLogWnull1063 function PdhOpenLogW(szLogFileName: LPCWSTR; dwAccessFlags: DWORD;
1064 lpdwLogType: LPDWORD; hQuery: PDH_HQUERY; dwMaxRecords: DWORD;
1065 szUserCaption: LPCWSTR; var phLog: PDH_HLOG): PDH_STATUS; stdcall;
1066 {$EXTERNALSYM PdhOpenLogW}
PdhOpenLognull1067 function PdhOpenLog(szLogFileName: LPCTSTR; dwAccessFlags: DWORD;
1068 lpdwLogType: LPDWORD; hQuery: PDH_HQUERY; dwMaxRecords: DWORD;
1069 szUserCaption: LPCTSTR; var phLog: PDH_HLOG): PDH_STATUS; stdcall;
1070 {$EXTERNALSYM PdhOpenLog}
1071
PdhUpdateLogAnull1072 function PdhUpdateLogA(hLog: PDH_HLOG; szUserString: LPCSTR): PDH_STATUS; stdcall;
1073 {$EXTERNALSYM PdhUpdateLogA}
PdhUpdateLogWnull1074 function PdhUpdateLogW(hLog: PDH_HLOG; szUserString: LPCWSTR): PDH_STATUS; stdcall;
1075 {$EXTERNALSYM PdhUpdateLogW}
PdhUpdateLognull1076 function PdhUpdateLog(hLog: PDH_HLOG; szUserString: LPCTSTR): PDH_STATUS; stdcall;
1077 {$EXTERNALSYM PdhUpdateLog}
1078
PdhUpdateLogFileCatalognull1079 function PdhUpdateLogFileCatalog(hLog: PDH_HLOG): PDH_STATUS; stdcall;
1080 {$EXTERNALSYM PdhUpdateLogFileCatalog}
1081
PdhGetLogFileSizenull1082 function PdhGetLogFileSize(hLog: PDH_HLOG; var llSize: LONGLONG): PDH_STATUS; stdcall;
1083 {$EXTERNALSYM PdhGetLogFileSize}
1084
PdhCloseLognull1085 function PdhCloseLog(hLog: PDH_HLOG; dwFlags: DWORD): PDH_STATUS; stdcall;
1086 {$EXTERNALSYM PdhCloseLog}
1087
1088 const
1089 PDH_FLAGS_CLOSE_QUERY = DWORD($00000001);
1090 {$EXTERNALSYM PDH_FLAGS_CLOSE_QUERY}
1091
1092 //
1093 // Data source selection dialog
1094 //
1095
1096 const
1097 PDH_FLAGS_FILE_BROWSER_ONLY = DWORD($00000001);
1098 {$EXTERNALSYM PDH_FLAGS_FILE_BROWSER_ONLY}
1099
PdhSelectDataSourceAnull1100 function PdhSelectDataSourceA(hWndOwner: HWND; dwFlags: DWORD;
1101 szDataSource: LPSTR; var pcchBufferLength: DWORD): PDH_STATUS; stdcall;
1102 {$EXTERNALSYM PdhSelectDataSourceA}
PdhSelectDataSourceWnull1103 function PdhSelectDataSourceW(hWndOwner: HWND; dwFlags: DWORD;
1104 szDataSource: LPWSTR; var pcchBufferLength: DWORD): PDH_STATUS; stdcall;
1105 {$EXTERNALSYM PdhSelectDataSourceW}
PdhSelectDataSourcenull1106 function PdhSelectDataSource(hWndOwner: HWND; dwFlags: DWORD;
1107 szDataSource: LPTSTR; var pcchBufferLength: DWORD): PDH_STATUS; stdcall;
1108 {$EXTERNALSYM PdhSelectDataSource}
1109
PdhIsRealTimeQuerynull1110 function PdhIsRealTimeQuery(hQuery: PDH_HQUERY): BOOL; stdcall;
1111 {$EXTERNALSYM PdhIsRealTimeQuery}
1112
PdhSetQueryTimeRangenull1113 function PdhSetQueryTimeRange(hQuery: PDH_HQUERY; var pInfo: PDH_TIME_INFO): PDH_STATUS; stdcall;
1114 {$EXTERNALSYM PdhSetQueryTimeRange}
1115
PdhGetDataSourceTimeRangeAnull1116 function PdhGetDataSourceTimeRangeA(szDataSource: LPCSTR; var pdwNumEntries: DWORD;
1117 var pInfo: PDH_TIME_INFO; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
1118 {$EXTERNALSYM PdhGetDataSourceTimeRangeA}
PdhGetDataSourceTimeRangeWnull1119 function PdhGetDataSourceTimeRangeW(szDataSource: LPCWSTR; var pdwNumEntries: DWORD;
1120 var pInfo: PDH_TIME_INFO; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
1121 {$EXTERNALSYM PdhGetDataSourceTimeRangeW}
PdhGetDataSourceTimeRangenull1122 function PdhGetDataSourceTimeRange(szDataSource: LPCTSTR; var pdwNumEntries: DWORD;
1123 var pInfo: PDH_TIME_INFO; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
1124 {$EXTERNALSYM PdhGetDataSourceTimeRange}
1125
PdhCollectQueryDataExnull1126 function PdhCollectQueryDataEx(hQuery: PDH_HQUERY; dwIntervalTime: DWORD;
1127 hNewDataEvent: HANDLE): PDH_STATUS; stdcall;
1128 {$EXTERNALSYM PdhCollectQueryDataEx}
1129
PdhFormatFromRawValuenull1130 function PdhFormatFromRawValue(dwCounterType, dwFormat: DWORD;
1131 var pTimeBase: LONGLONG; pRawValue1, pRawValue2: PPDH_RAW_COUNTER;
1132 var pFmtValue: PDH_FMT_COUNTERVALUE): PDH_STATUS; stdcall;
1133 {$EXTERNALSYM PdhFormatFromRawValue}
1134
PdhGetCounterTimeBasenull1135 function PdhGetCounterTimeBase(hCounter: PDH_HCOUNTER; var pTimeBase: LONGLONG): PDH_STATUS; stdcall;
1136 {$EXTERNALSYM PdhGetCounterTimeBase}
1137
PdhReadRawLogRecordnull1138 function PdhReadRawLogRecord(hLog: PDH_HLOG; ftRecord: FILETIME;
1139 var pRawLogRecord: PDH_RAW_LOG_RECORD; pdwBufferLength: LPDWORD): PDH_STATUS; stdcall;
1140 {$EXTERNALSYM PdhReadRawLogRecord}
1141
1142 const
1143 DATA_SOURCE_REGISTRY = DWORD($00000001);
1144 {$EXTERNALSYM DATA_SOURCE_REGISTRY}
1145 DATA_SOURCE_LOGFILE = DWORD($00000002);
1146 {$EXTERNALSYM DATA_SOURCE_LOGFILE}
1147 DATA_SOURCE_WBEM = DWORD($00000004);
1148 {$EXTERNALSYM DATA_SOURCE_WBEM}
1149
PdhSetDefaultRealTimeDataSourcenull1150 function PdhSetDefaultRealTimeDataSource(dwDataSourceId: DWORD): PDH_STATUS; stdcall;
1151 {$EXTERNALSYM PdhSetDefaultRealTimeDataSource}
1152
1153 // Extended API for WMI event trace logfile format
1154 //
1155
PdhBindInputDataSourceWnull1156 function PdhBindInputDataSourceW(var phDataSource: PDH_HLOG; LogFileNameList: LPCWSTR): PDH_STATUS; stdcall;
1157 {$EXTERNALSYM PdhBindInputDataSourceW}
PdhBindInputDataSourceAnull1158 function PdhBindInputDataSourceA(var phDataSource: PDH_HLOG; LogFileNameList: LPCSTR): PDH_STATUS; stdcall;
1159 {$EXTERNALSYM PdhBindInputDataSourceA}
PdhBindInputDataSourcenull1160 function PdhBindInputDataSource(var phDataSource: PDH_HLOG; LogFileNameList: LPCTSTR): PDH_STATUS; stdcall;
1161 {$EXTERNALSYM PdhBindInputDataSource}
1162
PdhOpenQueryHnull1163 function PdhOpenQueryH(hDataSource: PDH_HLOG; dwUserData: DWORD_PTR; var phQuery: PDH_HQUERY): PDH_STATUS; stdcall;
1164 {$EXTERNALSYM PdhOpenQueryH}
1165
PdhEnumMachinesHWnull1166 function PdhEnumMachinesHW(hDataSource: PDH_HLOG; mszMachineList: LPWSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1167 {$EXTERNALSYM PdhEnumMachinesHW}
PdhEnumMachinesHAnull1168 function PdhEnumMachinesHA(hDataSource: PDH_HLOG; mszMachineList: LPSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1169 {$EXTERNALSYM PdhEnumMachinesHA}
PdhEnumMachinesHnull1170 function PdhEnumMachinesH(hDataSource: PDH_HLOG; mszMachineList: LPTSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1171 {$EXTERNALSYM PdhEnumMachinesH}
1172
PdhEnumObjectsHAnull1173 function PdhEnumObjectsHA(hDataSource: PDH_HLOG; szMachineName: LPCSTR; mszObjectList: LPSTR; pcchBufferSize: LPDWORD;
1174 dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
1175 {$EXTERNALSYM PdhEnumObjectsHA}
PdhEnumObjectsHWnull1176 function PdhEnumObjectsHW(hDataSource: PDH_HLOG; szMachineName: LPCWSTR; mszObjectList: LPWSTR; pcchBufferSize: LPDWORD;
1177 dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
1178 {$EXTERNALSYM PdhEnumObjectsHW}
PdhEnumObjectsHnull1179 function PdhEnumObjectsH(hDataSource: PDH_HLOG; szMachineName: LPCTSTR; mszObjectList: LPWSTR; pcchBufferSize: LPDWORD;
1180 dwDetailLevel: DWORD; bRefresh: BOOL): PDH_STATUS; stdcall;
1181 {$EXTERNALSYM PdhEnumObjectsH}
1182
PdhEnumObjectItemsHAnull1183 function PdhEnumObjectItemsHA(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCSTR; mszCounterList: LPSTR;
1184 pcchCounterListLength: LPDWORD; mszInstanceList: LPSTR; pcchInstanceListLength: LPDWORD;
1185 dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
1186 {$EXTERNALSYM PdhEnumObjectItemsHA}
PdhEnumObjectItemsHWnull1187 function PdhEnumObjectItemsHW(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCWSTR; mszCounterList: LPWSTR;
1188 pcchCounterListLength: LPDWORD; mszInstanceList: LPWSTR; pcchInstanceListLength: LPDWORD;
1189 dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
1190 {$EXTERNALSYM PdhEnumObjectItemsHW}
PdhEnumObjectItemsHnull1191 function PdhEnumObjectItemsH(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCTSTR; mszCounterList: LPTSTR;
1192 pcchCounterListLength: LPDWORD; mszInstanceList: LPTSTR; pcchInstanceListLength: LPDWORD;
1193 dwDetailLevel, dwFlags: DWORD): PDH_STATUS; stdcall;
1194 {$EXTERNALSYM PdhEnumObjectItemsH}
1195
PdhExpandWildCardPathHAnull1196 function PdhExpandWildCardPathHA(hDataSource: PDH_HLOG; szWildCardPath: LPCSTR; mszExpandedPathList: LPSTR;
1197 pcchPathListLength: LPDWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
1198 {$EXTERNALSYM PdhExpandWildCardPathHA}
PdhExpandWildCardPathHWnull1199 function PdhExpandWildCardPathHW(hDataSource: PDH_HLOG; szWildCardPath: LPCWSTR; mszExpandedPathList: LPWSTR;
1200 pcchPathListLength: LPDWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
1201 {$EXTERNALSYM PdhExpandWildCardPathHW}
PdhExpandWildCardPathHnull1202 function PdhExpandWildCardPathH(hDataSource: PDH_HLOG; szWildCardPath: LPCTSTR; mszExpandedPathList: LPTSTR;
1203 pcchPathListLength: LPDWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
1204 {$EXTERNALSYM PdhExpandWildCardPathH}
1205
PdhGetDataSourceTimeRangeHnull1206 function PdhGetDataSourceTimeRangeH(hDataSource: PDH_HLOG; pdwNumEntries: LPDWORD; pInfo: PPDH_TIME_INFO;
1207 pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
1208 {$EXTERNALSYM PdhGetDataSourceTimeRangeH}
1209
PdhGetDefaultPerfObjectHWnull1210 function PdhGetDefaultPerfObjectHW(hDataSource: PDH_HLOG; szMachineName: LPCWSTR; szDefaultObjectName: LPWSTR;
1211 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1212 {$EXTERNALSYM PdhGetDefaultPerfObjectHW}
PdhGetDefaultPerfObjectHAnull1213 function PdhGetDefaultPerfObjectHA(hDataSource: PDH_HLOG; szMachineName: LPCSTR; szDefaultObjectName: LPSTR;
1214 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1215 {$EXTERNALSYM PdhGetDefaultPerfObjectHA}
PdhGetDefaultPerfObjectHnull1216 function PdhGetDefaultPerfObjectH(hDataSource: PDH_HLOG; szMachineName: LPCTSTR; szDefaultObjectName: LPTSTR;
1217 pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1218 {$EXTERNALSYM PdhGetDefaultPerfObjectH}
1219
PdhGetDefaultPerfCounterHWnull1220 function PdhGetDefaultPerfCounterHW(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCWSTR;
1221 szDefaultCounterName: LPWSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1222 {$EXTERNALSYM PdhGetDefaultPerfCounterHW}
PdhGetDefaultPerfCounterHAnull1223 function PdhGetDefaultPerfCounterHA(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCSTR;
1224 szDefaultCounterName: LPSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1225 {$EXTERNALSYM PdhGetDefaultPerfCounterHA}
PdhGetDefaultPerfCounterHnull1226 function PdhGetDefaultPerfCounterH(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCTSTR;
1227 szDefaultCounterName: LPTSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
1228 {$EXTERNALSYM PdhGetDefaultPerfCounterH}
1229
PdhBrowseCountersHWnull1230 function PdhBrowseCountersHW(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HW): PDH_STATUS; stdcall;
1231 {$EXTERNALSYM PdhBrowseCountersHW}
PdhBrowseCountersHAnull1232 function PdhBrowseCountersHA(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HA): PDH_STATUS; stdcall;
1233 {$EXTERNALSYM PdhBrowseCountersHA}
PdhBrowseCountersHnull1234 function PdhBrowseCountersH(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_H): PDH_STATUS; stdcall;
1235 {$EXTERNALSYM PdhBrowseCountersH}
1236
1237 //Check that a DSN points to a database that contains the correct Perfmon tables.
1238
PdhVerifySQLDBWnull1239 function PdhVerifySQLDBW(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
1240 {$EXTERNALSYM PdhVerifySQLDBW}
PdhVerifySQLDBAnull1241 function PdhVerifySQLDBA(szDataSource: LPCSTR): PDH_STATUS; stdcall;
1242 {$EXTERNALSYM PdhVerifySQLDBA}
PdhVerifySQLDBnull1243 function PdhVerifySQLDB(szDataSource: LPCTSTR): PDH_STATUS; stdcall;
1244 {$EXTERNALSYM PdhVerifySQLDB}
1245
1246 //Create the correct perfmon tables in the database pointed to by a DSN.
1247
PdhCreateSQLTablesWnull1248 function PdhCreateSQLTablesW(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
1249 {$EXTERNALSYM PdhCreateSQLTablesW}
PdhCreateSQLTablesAnull1250 function PdhCreateSQLTablesA(szDataSource: LPCSTR): PDH_STATUS; stdcall;
1251 {$EXTERNALSYM PdhCreateSQLTablesA}
PdhCreateSQLTablesnull1252 function PdhCreateSQLTables(szDataSource: LPCTSTR): PDH_STATUS; stdcall;
1253 {$EXTERNALSYM PdhCreateSQLTables}
1254
1255 //Return the list of Log set names in the database pointed to by the DSN.
1256
PdhEnumLogSetNamesWnull1257 function PdhEnumLogSetNamesW(szDataSource: LPCWSTR; mszDataSetNameList: LPWSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
1258 {$EXTERNALSYM PdhEnumLogSetNamesW}
PdhEnumLogSetNamesAnull1259 function PdhEnumLogSetNamesA(szDataSource: LPCSTR; mszDataSetNameList: LPSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
1260 {$EXTERNALSYM PdhEnumLogSetNamesA}
PdhEnumLogSetNamesnull1261 function PdhEnumLogSetNames(szDataSource: LPCTSTR; mszDataSetNameList: LPTSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
1262 {$EXTERNALSYM PdhEnumLogSetNames}
1263
1264 //Retrieve the GUID for an open Log Set
1265
PdhGetLogSetGUIDnull1266 function PdhGetLogSetGUID(hLog: PDH_HLOG; pGuid: LPGUID; pRunId: LPINT): PDH_STATUS; stdcall;
1267 {$EXTERNALSYM PdhGetLogSetGUID}
1268
1269 //Set the RunID for an open Log Set
1270
PdhSetLogSetRunIDnull1271 function PdhSetLogSetRunID(hLog: PDH_HLOG; RunId: Integer): PDH_STATUS; stdcall;
1272 {$EXTERNALSYM PdhSetLogSetRunID}
1273
1274 {$ENDIF JWA_IMPLEMENTATIONSECTION}
1275
1276 {$IFNDEF JWA_OMIT_SECTIONS}
1277 implementation
1278 //uses ...
1279 {$ENDIF JWA_OMIT_SECTIONS}
1280
1281 {$IFNDEF JWA_INTERFACESECTION}
1282
1283 {$IFNDEF JWA_INCLUDEMODE}
1284 const
1285 PdhLib = 'pdh.dll';
1286 {$IFDEF UNICODE}
1287 AWSuffix = 'W';
1288 {$ELSE}
1289 AWSuffix = 'A';
1290 {$ENDIF UNICODE}
1291 {$ENDIF JWA_INCLUDEMODE}
1292
IsSuccessSeveritynull1293 function IsSuccessSeverity(ErrorCode: Longint): Boolean;
1294 begin
1295 Result := (ErrorCode and $C0000000) = $00000000;
1296 end;
1297
IsInformationalSeveritynull1298 function IsInformationalSeverity(ErrorCode: Longint): Boolean;
1299 begin
1300 Result := (ErrorCode and $C0000000) = $40000000;
1301 end;
1302
IsWarningSeveritynull1303 function IsWarningSeverity(ErrorCode: Longint): Boolean;
1304 begin
1305 Result := (ErrorCode and $C0000000) = $80000000;
1306 end;
1307
IsErrorSeveritynull1308 function IsErrorSeverity(ErrorCode: Longint): Boolean;
1309 begin
1310 Result := (ErrorCode and $C0000000) = $C0000000;
1311 end;
1312
PDH_PATH_LANG_FLAGSnull1313 function PDH_PATH_LANG_FLAGS(LangId, Flags: DWORD): DWORD;
1314 begin
1315 Result := DWORD(((LangId and $0000FFFF) shl 16) or (Flags and $0000FFFF));
1316 end;
1317
1318 {$IFDEF DYNAMIC_LINK}
1319
1320 var
1321 _PdhGetDllVersion: Pointer;
1322
PdhGetDllVersionnull1323 function PdhGetDllVersion;
1324 begin
1325 GetProcedureAddress(_PdhGetDllVersion, PdhLib, 'PdhGetDllVersion');
1326 asm
1327 MOV ESP, EBP
1328 POP EBP
1329 JMP [_PdhGetDllVersion]
1330 end;
1331 end;
1332
1333 var
1334 _PdhOpenQueryA: Pointer;
1335
PdhOpenQueryAnull1336 function PdhOpenQueryA;
1337 begin
1338 GetProcedureAddress(_PdhOpenQueryA, PdhLib, 'PdhOpenQueryA');
1339 asm
1340 MOV ESP, EBP
1341 POP EBP
1342 JMP [_PdhOpenQueryA]
1343 end;
1344 end;
1345
1346 var
1347 _PdhOpenQueryW: Pointer;
1348
PdhOpenQueryWnull1349 function PdhOpenQueryW;
1350 begin
1351 GetProcedureAddress(_PdhOpenQueryW, PdhLib, 'PdhOpenQueryW');
1352 asm
1353 MOV ESP, EBP
1354 POP EBP
1355 JMP [_PdhOpenQueryW]
1356 end;
1357 end;
1358
1359 var
1360 _PdhOpenQuery: Pointer;
1361
PdhOpenQuerynull1362 function PdhOpenQuery;
1363 begin
1364 GetProcedureAddress(_PdhOpenQuery, PdhLib, 'PdhOpenQuery' + AWSuffix);
1365 asm
1366 MOV ESP, EBP
1367 POP EBP
1368 JMP [_PdhOpenQuery]
1369 end;
1370 end;
1371
1372 var
1373 _PdhAddCounterA: Pointer;
1374
PdhAddCounterAnull1375 function PdhAddCounterA;
1376 begin
1377 GetProcedureAddress(_PdhAddCounterA, PdhLib, 'PdhAddCounterA');
1378 asm
1379 MOV ESP, EBP
1380 POP EBP
1381 JMP [_PdhAddCounterA]
1382 end;
1383 end;
1384
1385 var
1386 _PdhAddCounterW: Pointer;
1387
PdhAddCounterWnull1388 function PdhAddCounterW;
1389 begin
1390 GetProcedureAddress(_PdhAddCounterW, PdhLib, 'PdhAddCounterW');
1391 asm
1392 MOV ESP, EBP
1393 POP EBP
1394 JMP [_PdhAddCounterW]
1395 end;
1396 end;
1397
1398 var
1399 _PdhAddCounter: Pointer;
1400
PdhAddCounternull1401 function PdhAddCounter;
1402 begin
1403 GetProcedureAddress(_PdhAddCounter, PdhLib, 'PdhAddCounter' + AWSuffix);
1404 asm
1405 MOV ESP, EBP
1406 POP EBP
1407 JMP [_PdhAddCounter]
1408 end;
1409 end;
1410
1411 var
1412 _PdhRemoveCounter: Pointer;
1413
PdhRemoveCounternull1414 function PdhRemoveCounter;
1415 begin
1416 GetProcedureAddress(_PdhRemoveCounter, PdhLib, 'PdhRemoveCounter');
1417 asm
1418 MOV ESP, EBP
1419 POP EBP
1420 JMP [_PdhRemoveCounter]
1421 end;
1422 end;
1423
1424 var
1425 _PdhCollectQueryData: Pointer;
1426
PdhCollectQueryDatanull1427 function PdhCollectQueryData;
1428 begin
1429 GetProcedureAddress(_PdhCollectQueryData, PdhLib, 'PdhCollectQueryData');
1430 asm
1431 MOV ESP, EBP
1432 POP EBP
1433 JMP [_PdhCollectQueryData]
1434 end;
1435 end;
1436
1437 var
1438 _PdhCloseQuery: Pointer;
1439
PdhCloseQuerynull1440 function PdhCloseQuery;
1441 begin
1442 GetProcedureAddress(_PdhCloseQuery, PdhLib, 'PdhCloseQuery');
1443 asm
1444 MOV ESP, EBP
1445 POP EBP
1446 JMP [_PdhCloseQuery]
1447 end;
1448 end;
1449
1450 var
1451 _PdhGetFormattedCounterValue: Pointer;
1452
PdhGetFormattedCounterValuenull1453 function PdhGetFormattedCounterValue;
1454 begin
1455 GetProcedureAddress(_PdhGetFormattedCounterValue, PdhLib, 'PdhGetFormattedCounterValue');
1456 asm
1457 MOV ESP, EBP
1458 POP EBP
1459 JMP [_PdhGetFormattedCounterValue]
1460 end;
1461 end;
1462
1463 var
1464 _PdhGetFormattedCounterArrayA: Pointer;
1465
PdhGetFormattedCounterArrayAnull1466 function PdhGetFormattedCounterArrayA;
1467 begin
1468 GetProcedureAddress(_PdhGetFormattedCounterArrayA, PdhLib, 'PdhGetFormattedCounterArrayA');
1469 asm
1470 MOV ESP, EBP
1471 POP EBP
1472 JMP [_PdhGetFormattedCounterArrayA]
1473 end;
1474 end;
1475
1476 var
1477 _PdhGetFormattedCounterArrayW: Pointer;
1478
PdhGetFormattedCounterArrayWnull1479 function PdhGetFormattedCounterArrayW;
1480 begin
1481 GetProcedureAddress(_PdhGetFormattedCounterArrayW, PdhLib, 'PdhGetFormattedCounterArrayW');
1482 asm
1483 MOV ESP, EBP
1484 POP EBP
1485 JMP [_PdhGetFormattedCounterArrayW]
1486 end;
1487 end;
1488
1489 var
1490 _PdhGetFormattedCounterArray: Pointer;
1491
PdhGetFormattedCounterArraynull1492 function PdhGetFormattedCounterArray;
1493 begin
1494 GetProcedureAddress(_PdhGetFormattedCounterArray, PdhLib, 'PdhGetFormattedCounterArray' + AWSuffix);
1495 asm
1496 MOV ESP, EBP
1497 POP EBP
1498 JMP [_PdhGetFormattedCounterArray]
1499 end;
1500 end;
1501
1502 var
1503 _PdhGetRawCounterValue: Pointer;
1504
PdhGetRawCounterValuenull1505 function PdhGetRawCounterValue;
1506 begin
1507 GetProcedureAddress(_PdhGetRawCounterValue, PdhLib, 'PdhGetRawCounterValue');
1508 asm
1509 MOV ESP, EBP
1510 POP EBP
1511 JMP [_PdhGetRawCounterValue]
1512 end;
1513 end;
1514
1515 var
1516 _PdhGetRawCounterArrayA: Pointer;
1517
PdhGetRawCounterArrayAnull1518 function PdhGetRawCounterArrayA;
1519 begin
1520 GetProcedureAddress(_PdhGetRawCounterArrayA, PdhLib, 'PdhGetRawCounterArrayA');
1521 asm
1522 MOV ESP, EBP
1523 POP EBP
1524 JMP [_PdhGetRawCounterArrayA]
1525 end;
1526 end;
1527
1528 var
1529 _PdhGetRawCounterArrayW: Pointer;
1530
PdhGetRawCounterArrayWnull1531 function PdhGetRawCounterArrayW;
1532 begin
1533 GetProcedureAddress(_PdhGetRawCounterArrayW, PdhLib, 'PdhGetRawCounterArrayW');
1534 asm
1535 MOV ESP, EBP
1536 POP EBP
1537 JMP [_PdhGetRawCounterArrayW]
1538 end;
1539 end;
1540
1541 var
1542 _PdhGetRawCounterArray: Pointer;
1543
PdhGetRawCounterArraynull1544 function PdhGetRawCounterArray;
1545 begin
1546 GetProcedureAddress(_PdhGetRawCounterArray, PdhLib, 'PdhGetRawCounterArray' + AWSuffix);
1547 asm
1548 MOV ESP, EBP
1549 POP EBP
1550 JMP [_PdhGetRawCounterArray]
1551 end;
1552 end;
1553
1554 var
1555 _PdhCalculateCounterFromRawValue: Pointer;
1556
PdhCalculateCounterFromRawValuenull1557 function PdhCalculateCounterFromRawValue;
1558 begin
1559 GetProcedureAddress(_PdhCalculateCounterFromRawValue, PdhLib, 'PdhCalculateCounterFromRawValue');
1560 asm
1561 MOV ESP, EBP
1562 POP EBP
1563 JMP [_PdhCalculateCounterFromRawValue]
1564 end;
1565 end;
1566
1567 var
1568 _PdhComputeCounterStatistics: Pointer;
1569
PdhComputeCounterStatisticsnull1570 function PdhComputeCounterStatistics;
1571 begin
1572 GetProcedureAddress(_PdhComputeCounterStatistics, PdhLib, 'PdhComputeCounterStatistics');
1573 asm
1574 MOV ESP, EBP
1575 POP EBP
1576 JMP [_PdhComputeCounterStatistics]
1577 end;
1578 end;
1579
1580 var
1581 _PdhGetCounterInfoA: Pointer;
1582
PdhGetCounterInfoAnull1583 function PdhGetCounterInfoA;
1584 begin
1585 GetProcedureAddress(_PdhGetCounterInfoA, PdhLib, 'PdhGetCounterInfoA');
1586 asm
1587 MOV ESP, EBP
1588 POP EBP
1589 JMP [_PdhGetCounterInfoA]
1590 end;
1591 end;
1592
1593 var
1594 _PdhGetCounterInfoW: Pointer;
1595
PdhGetCounterInfoWnull1596 function PdhGetCounterInfoW;
1597 begin
1598 GetProcedureAddress(_PdhGetCounterInfoW, PdhLib, 'PdhGetCounterInfoW');
1599 asm
1600 MOV ESP, EBP
1601 POP EBP
1602 JMP [_PdhGetCounterInfoW]
1603 end;
1604 end;
1605
1606 var
1607 _PdhGetCounterInfo: Pointer;
1608
PdhGetCounterInfonull1609 function PdhGetCounterInfo;
1610 begin
1611 GetProcedureAddress(_PdhGetCounterInfo, PdhLib, 'PdhGetCounterInfo' + AWSuffix);
1612 asm
1613 MOV ESP, EBP
1614 POP EBP
1615 JMP [_PdhGetCounterInfo]
1616 end;
1617 end;
1618
1619 var
1620 _PdhSetCounterScaleFactor: Pointer;
1621
PdhSetCounterScaleFactornull1622 function PdhSetCounterScaleFactor;
1623 begin
1624 GetProcedureAddress(_PdhSetCounterScaleFactor, PdhLib, 'PdhSetCounterScaleFactor');
1625 asm
1626 MOV ESP, EBP
1627 POP EBP
1628 JMP [_PdhSetCounterScaleFactor]
1629 end;
1630 end;
1631
1632 var
1633 _PdhConnectMachineA: Pointer;
1634
PdhConnectMachineAnull1635 function PdhConnectMachineA;
1636 begin
1637 GetProcedureAddress(_PdhConnectMachineA, PdhLib, 'PdhConnectMachineA');
1638 asm
1639 MOV ESP, EBP
1640 POP EBP
1641 JMP [_PdhConnectMachineA]
1642 end;
1643 end;
1644
1645 var
1646 _PdhConnectMachineW: Pointer;
1647
PdhConnectMachineWnull1648 function PdhConnectMachineW;
1649 begin
1650 GetProcedureAddress(_PdhConnectMachineW, PdhLib, 'PdhConnectMachineW');
1651 asm
1652 MOV ESP, EBP
1653 POP EBP
1654 JMP [_PdhConnectMachineW]
1655 end;
1656 end;
1657
1658 var
1659 _PdhConnectMachine: Pointer;
1660
PdhConnectMachinenull1661 function PdhConnectMachine;
1662 begin
1663 GetProcedureAddress(_PdhConnectMachine, PdhLib, 'PdhConnectMachine' + AWSuffix);
1664 asm
1665 MOV ESP, EBP
1666 POP EBP
1667 JMP [_PdhConnectMachine]
1668 end;
1669 end;
1670
1671 var
1672 _PdhEnumMachinesA: Pointer;
1673
PdhEnumMachinesAnull1674 function PdhEnumMachinesA;
1675 begin
1676 GetProcedureAddress(_PdhEnumMachinesA, PdhLib, 'PdhEnumMachinesA');
1677 asm
1678 MOV ESP, EBP
1679 POP EBP
1680 JMP [_PdhEnumMachinesA]
1681 end;
1682 end;
1683
1684 var
1685 _PdhEnumMachinesW: Pointer;
1686
PdhEnumMachinesWnull1687 function PdhEnumMachinesW;
1688 begin
1689 GetProcedureAddress(_PdhEnumMachinesW, PdhLib, 'PdhEnumMachinesW');
1690 asm
1691 MOV ESP, EBP
1692 POP EBP
1693 JMP [_PdhEnumMachinesW]
1694 end;
1695 end;
1696
1697 var
1698 _PdhEnumMachines: Pointer;
1699
PdhEnumMachinesnull1700 function PdhEnumMachines;
1701 begin
1702 GetProcedureAddress(_PdhEnumMachines, PdhLib, 'PdhEnumMachines' + AWSuffix);
1703 asm
1704 MOV ESP, EBP
1705 POP EBP
1706 JMP [_PdhEnumMachines]
1707 end;
1708 end;
1709
1710 var
1711 _PdhEnumObjectsA: Pointer;
1712
PdhEnumObjectsAnull1713 function PdhEnumObjectsA;
1714 begin
1715 GetProcedureAddress(_PdhEnumObjectsA, PdhLib, 'PdhEnumObjectsA');
1716 asm
1717 MOV ESP, EBP
1718 POP EBP
1719 JMP [_PdhEnumObjectsA]
1720 end;
1721 end;
1722
1723 var
1724 _PdhEnumObjectsW: Pointer;
1725
PdhEnumObjectsWnull1726 function PdhEnumObjectsW;
1727 begin
1728 GetProcedureAddress(_PdhEnumObjectsW, PdhLib, 'PdhEnumObjectsW');
1729 asm
1730 MOV ESP, EBP
1731 POP EBP
1732 JMP [_PdhEnumObjectsW]
1733 end;
1734 end;
1735
1736 var
1737 _PdhEnumObjects: Pointer;
1738
PdhEnumObjectsnull1739 function PdhEnumObjects;
1740 begin
1741 GetProcedureAddress(_PdhEnumObjects, PdhLib, 'PdhEnumObjects' + AWSuffix);
1742 asm
1743 MOV ESP, EBP
1744 POP EBP
1745 JMP [_PdhEnumObjects]
1746 end;
1747 end;
1748
1749 var
1750 _PdhEnumObjectItemsA: Pointer;
1751
PdhEnumObjectItemsAnull1752 function PdhEnumObjectItemsA;
1753 begin
1754 GetProcedureAddress(_PdhEnumObjectItemsA, PdhLib, 'PdhEnumObjectItemsA');
1755 asm
1756 MOV ESP, EBP
1757 POP EBP
1758 JMP [_PdhEnumObjectItemsA]
1759 end;
1760 end;
1761
1762 var
1763 _PdhEnumObjectItemsW: Pointer;
1764
PdhEnumObjectItemsWnull1765 function PdhEnumObjectItemsW;
1766 begin
1767 GetProcedureAddress(_PdhEnumObjectItemsW, PdhLib, 'PdhEnumObjectItemsW');
1768 asm
1769 MOV ESP, EBP
1770 POP EBP
1771 JMP [_PdhEnumObjectItemsW]
1772 end;
1773 end;
1774
1775 var
1776 _PdhEnumObjectItems: Pointer;
1777
PdhEnumObjectItemsnull1778 function PdhEnumObjectItems;
1779 begin
1780 GetProcedureAddress(_PdhEnumObjectItems, PdhLib, 'PdhEnumObjectItems' + AWSuffix);
1781 asm
1782 MOV ESP, EBP
1783 POP EBP
1784 JMP [_PdhEnumObjectItems]
1785 end;
1786 end;
1787
1788 var
1789 _PdhMakeCounterPathA: Pointer;
1790
PdhMakeCounterPathAnull1791 function PdhMakeCounterPathA;
1792 begin
1793 GetProcedureAddress(_PdhMakeCounterPathA, PdhLib, 'PdhMakeCounterPathA');
1794 asm
1795 MOV ESP, EBP
1796 POP EBP
1797 JMP [_PdhMakeCounterPathA]
1798 end;
1799 end;
1800
1801 var
1802 _PdhMakeCounterPathW: Pointer;
1803
PdhMakeCounterPathWnull1804 function PdhMakeCounterPathW;
1805 begin
1806 GetProcedureAddress(_PdhMakeCounterPathW, PdhLib, 'PdhMakeCounterPathW');
1807 asm
1808 MOV ESP, EBP
1809 POP EBP
1810 JMP [_PdhMakeCounterPathW]
1811 end;
1812 end;
1813
1814 var
1815 _PdhMakeCounterPath: Pointer;
1816
PdhMakeCounterPathnull1817 function PdhMakeCounterPath;
1818 begin
1819 GetProcedureAddress(_PdhMakeCounterPath, PdhLib, 'PdhMakeCounterPath' + AWSuffix);
1820 asm
1821 MOV ESP, EBP
1822 POP EBP
1823 JMP [_PdhMakeCounterPath]
1824 end;
1825 end;
1826
1827 var
1828 _PdhParseCounterPathA: Pointer;
1829
PdhParseCounterPathAnull1830 function PdhParseCounterPathA;
1831 begin
1832 GetProcedureAddress(_PdhParseCounterPathA, PdhLib, 'PdhParseCounterPathA');
1833 asm
1834 MOV ESP, EBP
1835 POP EBP
1836 JMP [_PdhParseCounterPathA]
1837 end;
1838 end;
1839
1840 var
1841 _PdhParseCounterPathW: Pointer;
1842
PdhParseCounterPathWnull1843 function PdhParseCounterPathW;
1844 begin
1845 GetProcedureAddress(_PdhParseCounterPathW, PdhLib, 'PdhParseCounterPathW');
1846 asm
1847 MOV ESP, EBP
1848 POP EBP
1849 JMP [_PdhParseCounterPathW]
1850 end;
1851 end;
1852
1853 var
1854 _PdhParseCounterPath: Pointer;
1855
PdhParseCounterPathnull1856 function PdhParseCounterPath;
1857 begin
1858 GetProcedureAddress(_PdhParseCounterPath, PdhLib, 'PdhParseCounterPath' + AWSuffix);
1859 asm
1860 MOV ESP, EBP
1861 POP EBP
1862 JMP [_PdhParseCounterPath]
1863 end;
1864 end;
1865
1866 var
1867 _PdhParseInstanceNameA: Pointer;
1868
PdhParseInstanceNameAnull1869 function PdhParseInstanceNameA;
1870 begin
1871 GetProcedureAddress(_PdhParseInstanceNameA, PdhLib, 'PdhParseInstanceNameA');
1872 asm
1873 MOV ESP, EBP
1874 POP EBP
1875 JMP [_PdhParseInstanceNameA]
1876 end;
1877 end;
1878
1879 var
1880 _PdhParseInstanceNameW: Pointer;
1881
PdhParseInstanceNameWnull1882 function PdhParseInstanceNameW;
1883 begin
1884 GetProcedureAddress(_PdhParseInstanceNameW, PdhLib, 'PdhParseInstanceNameW');
1885 asm
1886 MOV ESP, EBP
1887 POP EBP
1888 JMP [_PdhParseInstanceNameW]
1889 end;
1890 end;
1891
1892 var
1893 _PdhParseInstanceName: Pointer;
1894
PdhParseInstanceNamenull1895 function PdhParseInstanceName;
1896 begin
1897 GetProcedureAddress(_PdhParseInstanceName, PdhLib, 'PdhParseInstanceName' + AWSuffix);
1898 asm
1899 MOV ESP, EBP
1900 POP EBP
1901 JMP [_PdhParseInstanceName]
1902 end;
1903 end;
1904
1905 var
1906 _PdhValidatePathA: Pointer;
1907
PdhValidatePathAnull1908 function PdhValidatePathA;
1909 begin
1910 GetProcedureAddress(_PdhValidatePathA, PdhLib, 'PdhValidatePathA');
1911 asm
1912 MOV ESP, EBP
1913 POP EBP
1914 JMP [_PdhValidatePathA]
1915 end;
1916 end;
1917
1918 var
1919 _PdhValidatePathW: Pointer;
1920
PdhValidatePathWnull1921 function PdhValidatePathW;
1922 begin
1923 GetProcedureAddress(_PdhValidatePathW, PdhLib, 'PdhValidatePathW');
1924 asm
1925 MOV ESP, EBP
1926 POP EBP
1927 JMP [_PdhValidatePathW]
1928 end;
1929 end;
1930
1931 var
1932 _PdhValidatePath: Pointer;
1933
PdhValidatePathnull1934 function PdhValidatePath;
1935 begin
1936 GetProcedureAddress(_PdhValidatePath, PdhLib, 'PdhValidatePath' + AWSuffix);
1937 asm
1938 MOV ESP, EBP
1939 POP EBP
1940 JMP [_PdhValidatePath]
1941 end;
1942 end;
1943
1944 var
1945 _PdhGetDefaultPerfObjectA: Pointer;
1946
PdhGetDefaultPerfObjectAnull1947 function PdhGetDefaultPerfObjectA;
1948 begin
1949 GetProcedureAddress(_PdhGetDefaultPerfObjectA, PdhLib, 'PdhGetDefaultPerfObjectA');
1950 asm
1951 MOV ESP, EBP
1952 POP EBP
1953 JMP [_PdhGetDefaultPerfObjectA]
1954 end;
1955 end;
1956
1957 var
1958 _PdhGetDefaultPerfObjectW: Pointer;
1959
PdhGetDefaultPerfObjectWnull1960 function PdhGetDefaultPerfObjectW;
1961 begin
1962 GetProcedureAddress(_PdhGetDefaultPerfObjectW, PdhLib, 'PdhGetDefaultPerfObjectW');
1963 asm
1964 MOV ESP, EBP
1965 POP EBP
1966 JMP [_PdhGetDefaultPerfObjectW]
1967 end;
1968 end;
1969
1970 var
1971 _PdhGetDefaultPerfObject: Pointer;
1972
PdhGetDefaultPerfObjectnull1973 function PdhGetDefaultPerfObject;
1974 begin
1975 GetProcedureAddress(_PdhGetDefaultPerfObject, PdhLib, 'PdhGetDefaultPerfObject' + AWSuffix);
1976 asm
1977 MOV ESP, EBP
1978 POP EBP
1979 JMP [_PdhGetDefaultPerfObject]
1980 end;
1981 end;
1982
1983 var
1984 _PdhGetDefaultPerfCounterA: Pointer;
1985
PdhGetDefaultPerfCounterAnull1986 function PdhGetDefaultPerfCounterA;
1987 begin
1988 GetProcedureAddress(_PdhGetDefaultPerfCounterA, PdhLib, 'PdhGetDefaultPerfCounterA');
1989 asm
1990 MOV ESP, EBP
1991 POP EBP
1992 JMP [_PdhGetDefaultPerfCounterA]
1993 end;
1994 end;
1995
1996 var
1997 _PdhGetDefaultPerfCounterW: Pointer;
1998
PdhGetDefaultPerfCounterWnull1999 function PdhGetDefaultPerfCounterW;
2000 begin
2001 GetProcedureAddress(_PdhGetDefaultPerfCounterW, PdhLib, 'PdhGetDefaultPerfCounterW');
2002 asm
2003 MOV ESP, EBP
2004 POP EBP
2005 JMP [_PdhGetDefaultPerfCounterW]
2006 end;
2007 end;
2008
2009 var
2010 _PdhGetDefaultPerfCounter: Pointer;
2011
PdhGetDefaultPerfCounternull2012 function PdhGetDefaultPerfCounter;
2013 begin
2014 GetProcedureAddress(_PdhGetDefaultPerfCounter, PdhLib, 'PdhGetDefaultPerfCounter' + AWSuffix);
2015 asm
2016 MOV ESP, EBP
2017 POP EBP
2018 JMP [_PdhGetDefaultPerfCounter]
2019 end;
2020 end;
2021
2022 var
2023 _PdhBrowseCountersA: Pointer;
2024
PdhBrowseCountersAnull2025 function PdhBrowseCountersA;
2026 begin
2027 GetProcedureAddress(_PdhBrowseCountersA, PdhLib, 'PdhBrowseCountersA');
2028 asm
2029 MOV ESP, EBP
2030 POP EBP
2031 JMP [_PdhBrowseCountersA]
2032 end;
2033 end;
2034
2035 var
2036 _PdhBrowseCountersW: Pointer;
2037
PdhBrowseCountersWnull2038 function PdhBrowseCountersW;
2039 begin
2040 GetProcedureAddress(_PdhBrowseCountersW, PdhLib, 'PdhBrowseCountersW');
2041 asm
2042 MOV ESP, EBP
2043 POP EBP
2044 JMP [_PdhBrowseCountersW]
2045 end;
2046 end;
2047
2048 var
2049 _PdhBrowseCounters: Pointer;
2050
PdhBrowseCountersnull2051 function PdhBrowseCounters;
2052 begin
2053 GetProcedureAddress(_PdhBrowseCounters, PdhLib, 'PdhBrowseCounters' + AWSuffix);
2054 asm
2055 MOV ESP, EBP
2056 POP EBP
2057 JMP [_PdhBrowseCounters]
2058 end;
2059 end;
2060
2061 var
2062 _PdhExpandCounterPathA: Pointer;
2063
PdhExpandCounterPathAnull2064 function PdhExpandCounterPathA;
2065 begin
2066 GetProcedureAddress(_PdhExpandCounterPathA, PdhLib, 'PdhExpandCounterPathA');
2067 asm
2068 MOV ESP, EBP
2069 POP EBP
2070 JMP [_PdhExpandCounterPathA]
2071 end;
2072 end;
2073
2074 var
2075 _PdhExpandCounterPathW: Pointer;
2076
PdhExpandCounterPathWnull2077 function PdhExpandCounterPathW;
2078 begin
2079 GetProcedureAddress(_PdhExpandCounterPathW, PdhLib, 'PdhExpandCounterPathW');
2080 asm
2081 MOV ESP, EBP
2082 POP EBP
2083 JMP [_PdhExpandCounterPathW]
2084 end;
2085 end;
2086
2087 var
2088 _PdhExpandCounterPath: Pointer;
2089
PdhExpandCounterPathnull2090 function PdhExpandCounterPath;
2091 begin
2092 GetProcedureAddress(_PdhExpandCounterPath, PdhLib, 'PdhExpandCounterPath' + AWSuffix);
2093 asm
2094 MOV ESP, EBP
2095 POP EBP
2096 JMP [_PdhExpandCounterPath]
2097 end;
2098 end;
2099
2100 var
2101 _PdhLookupPerfNameByIndexA: Pointer;
2102
PdhLookupPerfNameByIndexAnull2103 function PdhLookupPerfNameByIndexA;
2104 begin
2105 GetProcedureAddress(_PdhLookupPerfNameByIndexA, PdhLib, 'PdhLookupPerfNameByIndexA');
2106 asm
2107 MOV ESP, EBP
2108 POP EBP
2109 JMP [_PdhLookupPerfNameByIndexA]
2110 end;
2111 end;
2112
2113 var
2114 _PdhLookupPerfNameByIndexW: Pointer;
2115
PdhLookupPerfNameByIndexWnull2116 function PdhLookupPerfNameByIndexW;
2117 begin
2118 GetProcedureAddress(_PdhLookupPerfNameByIndexW, PdhLib, 'PdhLookupPerfNameByIndexW');
2119 asm
2120 MOV ESP, EBP
2121 POP EBP
2122 JMP [_PdhLookupPerfNameByIndexW]
2123 end;
2124 end;
2125
2126 var
2127 _PdhLookupPerfNameByIndex: Pointer;
2128
PdhLookupPerfNameByIndexnull2129 function PdhLookupPerfNameByIndex;
2130 begin
2131 GetProcedureAddress(_PdhLookupPerfNameByIndex, PdhLib, 'PdhLookupPerfNameByIndex' + AWSuffix);
2132 asm
2133 MOV ESP, EBP
2134 POP EBP
2135 JMP [_PdhLookupPerfNameByIndex]
2136 end;
2137 end;
2138
2139 var
2140 _PdhLookupPerfIndexByNameA: Pointer;
2141
PdhLookupPerfIndexByNameAnull2142 function PdhLookupPerfIndexByNameA;
2143 begin
2144 GetProcedureAddress(_PdhLookupPerfIndexByNameA, PdhLib, 'PdhLookupPerfIndexByNameA');
2145 asm
2146 MOV ESP, EBP
2147 POP EBP
2148 JMP [_PdhLookupPerfIndexByNameA]
2149 end;
2150 end;
2151
2152 var
2153 _PdhLookupPerfIndexByNameW: Pointer;
2154
PdhLookupPerfIndexByNameWnull2155 function PdhLookupPerfIndexByNameW;
2156 begin
2157 GetProcedureAddress(_PdhLookupPerfIndexByNameW, PdhLib, 'PdhLookupPerfIndexByNameW');
2158 asm
2159 MOV ESP, EBP
2160 POP EBP
2161 JMP [_PdhLookupPerfIndexByNameW]
2162 end;
2163 end;
2164
2165 var
2166 _PdhLookupPerfIndexByName: Pointer;
2167
PdhLookupPerfIndexByNamenull2168 function PdhLookupPerfIndexByName;
2169 begin
2170 GetProcedureAddress(_PdhLookupPerfIndexByName, PdhLib, 'PdhLookupPerfIndexByName' + AWSuffix);
2171 asm
2172 MOV ESP, EBP
2173 POP EBP
2174 JMP [_PdhLookupPerfIndexByName]
2175 end;
2176 end;
2177
2178 var
2179 _PdhExpandWildCardPathA: Pointer;
2180
PdhExpandWildCardPathAnull2181 function PdhExpandWildCardPathA;
2182 begin
2183 GetProcedureAddress(_PdhExpandWildCardPathA, PdhLib, 'PdhExpandWildCardPathA');
2184 asm
2185 MOV ESP, EBP
2186 POP EBP
2187 JMP [_PdhExpandWildCardPathA]
2188 end;
2189 end;
2190
2191 var
2192 _PdhExpandWildCardPathW: Pointer;
2193
PdhExpandWildCardPathWnull2194 function PdhExpandWildCardPathW;
2195 begin
2196 GetProcedureAddress(_PdhExpandWildCardPathW, PdhLib, 'PdhExpandWildCardPathW');
2197 asm
2198 MOV ESP, EBP
2199 POP EBP
2200 JMP [_PdhExpandWildCardPathW]
2201 end;
2202 end;
2203
2204 var
2205 _PdhExpandWildCardPath: Pointer;
2206
PdhExpandWildCardPathnull2207 function PdhExpandWildCardPath;
2208 begin
2209 GetProcedureAddress(_PdhExpandWildCardPath, PdhLib, 'PdhExpandWildCardPath' + AWSuffix);
2210 asm
2211 MOV ESP, EBP
2212 POP EBP
2213 JMP [_PdhExpandWildCardPath]
2214 end;
2215 end;
2216
2217 var
2218 _PdhOpenLogA: Pointer;
2219
PdhOpenLogAnull2220 function PdhOpenLogA;
2221 begin
2222 GetProcedureAddress(_PdhOpenLogA, PdhLib, 'PdhOpenLogA');
2223 asm
2224 MOV ESP, EBP
2225 POP EBP
2226 JMP [_PdhOpenLogA]
2227 end;
2228 end;
2229
2230 var
2231 _PdhOpenLogW: Pointer;
2232
PdhOpenLogWnull2233 function PdhOpenLogW;
2234 begin
2235 GetProcedureAddress(_PdhOpenLogW, PdhLib, 'PdhOpenLogW');
2236 asm
2237 MOV ESP, EBP
2238 POP EBP
2239 JMP [_PdhOpenLogW]
2240 end;
2241 end;
2242
2243 var
2244 _PdhOpenLog: Pointer;
2245
PdhOpenLognull2246 function PdhOpenLog;
2247 begin
2248 GetProcedureAddress(_PdhOpenLog, PdhLib, 'PdhOpenLog' + AWSuffix);
2249 asm
2250 MOV ESP, EBP
2251 POP EBP
2252 JMP [_PdhOpenLog]
2253 end;
2254 end;
2255
2256 var
2257 _PdhUpdateLogA: Pointer;
2258
PdhUpdateLogAnull2259 function PdhUpdateLogA;
2260 begin
2261 GetProcedureAddress(_PdhUpdateLogA, PdhLib, 'PdhUpdateLogA');
2262 asm
2263 MOV ESP, EBP
2264 POP EBP
2265 JMP [_PdhUpdateLogA]
2266 end;
2267 end;
2268
2269 var
2270 _PdhUpdateLogW: Pointer;
2271
PdhUpdateLogWnull2272 function PdhUpdateLogW;
2273 begin
2274 GetProcedureAddress(_PdhUpdateLogW, PdhLib, 'PdhUpdateLogW');
2275 asm
2276 MOV ESP, EBP
2277 POP EBP
2278 JMP [_PdhUpdateLogW]
2279 end;
2280 end;
2281
2282 var
2283 _PdhUpdateLog: Pointer;
2284
PdhUpdateLognull2285 function PdhUpdateLog;
2286 begin
2287 GetProcedureAddress(_PdhUpdateLog, PdhLib, 'PdhUpdateLog' + AWSuffix);
2288 asm
2289 MOV ESP, EBP
2290 POP EBP
2291 JMP [_PdhUpdateLog]
2292 end;
2293 end;
2294
2295 var
2296 _PdhUpdateLogFileCatalog: Pointer;
2297
PdhUpdateLogFileCatalognull2298 function PdhUpdateLogFileCatalog;
2299 begin
2300 GetProcedureAddress(_PdhUpdateLogFileCatalog, PdhLib, 'PdhUpdateLogFileCatalog');
2301 asm
2302 MOV ESP, EBP
2303 POP EBP
2304 JMP [_PdhUpdateLogFileCatalog]
2305 end;
2306 end;
2307
2308 var
2309 _PdhGetLogFileSize: Pointer;
2310
PdhGetLogFileSizenull2311 function PdhGetLogFileSize;
2312 begin
2313 GetProcedureAddress(_PdhGetLogFileSize, PdhLib, 'PdhGetLogFileSize');
2314 asm
2315 MOV ESP, EBP
2316 POP EBP
2317 JMP [_PdhGetLogFileSize]
2318 end;
2319 end;
2320
2321 var
2322 _PdhCloseLog: Pointer;
2323
PdhCloseLognull2324 function PdhCloseLog;
2325 begin
2326 GetProcedureAddress(_PdhCloseLog, PdhLib, 'PdhCloseLog');
2327 asm
2328 MOV ESP, EBP
2329 POP EBP
2330 JMP [_PdhCloseLog]
2331 end;
2332 end;
2333
2334 var
2335 _PdhSelectDataSourceA: Pointer;
2336
PdhSelectDataSourceAnull2337 function PdhSelectDataSourceA;
2338 begin
2339 GetProcedureAddress(_PdhSelectDataSourceA, PdhLib, 'PdhSelectDataSourceA');
2340 asm
2341 MOV ESP, EBP
2342 POP EBP
2343 JMP [_PdhSelectDataSourceA]
2344 end;
2345 end;
2346
2347 var
2348 _PdhSelectDataSourceW: Pointer;
2349
PdhSelectDataSourceWnull2350 function PdhSelectDataSourceW;
2351 begin
2352 GetProcedureAddress(_PdhSelectDataSourceW, PdhLib, 'PdhSelectDataSourceW');
2353 asm
2354 MOV ESP, EBP
2355 POP EBP
2356 JMP [_PdhSelectDataSourceW]
2357 end;
2358 end;
2359
2360 var
2361 _PdhSelectDataSource: Pointer;
2362
PdhSelectDataSourcenull2363 function PdhSelectDataSource;
2364 begin
2365 GetProcedureAddress(_PdhSelectDataSource, PdhLib, 'PdhSelectDataSource' + AWSuffix);
2366 asm
2367 MOV ESP, EBP
2368 POP EBP
2369 JMP [_PdhSelectDataSource]
2370 end;
2371 end;
2372
2373 var
2374 _PdhIsRealTimeQuery: Pointer;
2375
PdhIsRealTimeQuerynull2376 function PdhIsRealTimeQuery;
2377 begin
2378 GetProcedureAddress(_PdhIsRealTimeQuery, PdhLib, 'PdhIsRealTimeQuery');
2379 asm
2380 MOV ESP, EBP
2381 POP EBP
2382 JMP [_PdhIsRealTimeQuery]
2383 end;
2384 end;
2385
2386 var
2387 _PdhSetQueryTimeRange: Pointer;
2388
PdhSetQueryTimeRangenull2389 function PdhSetQueryTimeRange;
2390 begin
2391 GetProcedureAddress(_PdhSetQueryTimeRange, PdhLib, 'PdhSetQueryTimeRange');
2392 asm
2393 MOV ESP, EBP
2394 POP EBP
2395 JMP [_PdhSetQueryTimeRange]
2396 end;
2397 end;
2398
2399 var
2400 _PdhGetDataSourceTimeRangeA: Pointer;
2401
PdhGetDataSourceTimeRangeAnull2402 function PdhGetDataSourceTimeRangeA;
2403 begin
2404 GetProcedureAddress(_PdhGetDataSourceTimeRangeA, PdhLib, 'PdhGetDataSourceTimeRangeA');
2405 asm
2406 MOV ESP, EBP
2407 POP EBP
2408 JMP [_PdhGetDataSourceTimeRangeA]
2409 end;
2410 end;
2411
2412 var
2413 _PdhGetDataSourceTimeRangeW: Pointer;
2414
PdhGetDataSourceTimeRangeWnull2415 function PdhGetDataSourceTimeRangeW;
2416 begin
2417 GetProcedureAddress(_PdhGetDataSourceTimeRangeW, PdhLib, 'PdhGetDataSourceTimeRangeW');
2418 asm
2419 MOV ESP, EBP
2420 POP EBP
2421 JMP [_PdhGetDataSourceTimeRangeW]
2422 end;
2423 end;
2424
2425 var
2426 _PdhGetDataSourceTimeRange: Pointer;
2427
PdhGetDataSourceTimeRangenull2428 function PdhGetDataSourceTimeRange;
2429 begin
2430 GetProcedureAddress(_PdhGetDataSourceTimeRange, PdhLib, 'PdhGetDataSourceTimeRange' + AWSuffix);
2431 asm
2432 MOV ESP, EBP
2433 POP EBP
2434 JMP [_PdhGetDataSourceTimeRange]
2435 end;
2436 end;
2437
2438 var
2439 _PdhCollectQueryDataEx: Pointer;
2440
PdhCollectQueryDataExnull2441 function PdhCollectQueryDataEx;
2442 begin
2443 GetProcedureAddress(_PdhCollectQueryDataEx, PdhLib, 'PdhCollectQueryDataEx');
2444 asm
2445 MOV ESP, EBP
2446 POP EBP
2447 JMP [_PdhCollectQueryDataEx]
2448 end;
2449 end;
2450
2451 var
2452 _PdhFormatFromRawValue: Pointer;
2453
PdhFormatFromRawValuenull2454 function PdhFormatFromRawValue;
2455 begin
2456 GetProcedureAddress(_PdhFormatFromRawValue, PdhLib, 'PdhFormatFromRawValue');
2457 asm
2458 MOV ESP, EBP
2459 POP EBP
2460 JMP [_PdhFormatFromRawValue]
2461 end;
2462 end;
2463
2464 var
2465 _PdhGetCounterTimeBase: Pointer;
2466
PdhGetCounterTimeBasenull2467 function PdhGetCounterTimeBase;
2468 begin
2469 GetProcedureAddress(_PdhGetCounterTimeBase, PdhLib, 'PdhGetCounterTimeBase');
2470 asm
2471 MOV ESP, EBP
2472 POP EBP
2473 JMP [_PdhGetCounterTimeBase]
2474 end;
2475 end;
2476
2477 var
2478 _PdhReadRawLogRecord: Pointer;
2479
PdhReadRawLogRecordnull2480 function PdhReadRawLogRecord;
2481 begin
2482 GetProcedureAddress(_PdhReadRawLogRecord, PdhLib, 'PdhReadRawLogRecord');
2483 asm
2484 MOV ESP, EBP
2485 POP EBP
2486 JMP [_PdhReadRawLogRecord]
2487 end;
2488 end;
2489
2490 var
2491 _PdhSetDefaultRealTimeDataSource: Pointer;
2492
PdhSetDefaultRealTimeDataSourcenull2493 function PdhSetDefaultRealTimeDataSource;
2494 begin
2495 GetProcedureAddress(_PdhSetDefaultRealTimeDataSource, PdhLib, 'PdhSetDefaultRealTimeDataSource');
2496 asm
2497 MOV ESP, EBP
2498 POP EBP
2499 JMP [_PdhSetDefaultRealTimeDataSource]
2500 end;
2501 end;
2502
2503 var
2504 _PdhBindInputDataSourceW: Pointer;
2505
PdhBindInputDataSourceWnull2506 function PdhBindInputDataSourceW;
2507 begin
2508 GetProcedureAddress(_PdhBindInputDataSourceW, PdhLib, 'PdhBindInputDataSourceW');
2509 asm
2510 MOV ESP, EBP
2511 POP EBP
2512 JMP [_PdhBindInputDataSourceW]
2513 end;
2514 end;
2515
2516 var
2517 _PdhBindInputDataSourceA: Pointer;
2518
PdhBindInputDataSourceAnull2519 function PdhBindInputDataSourceA;
2520 begin
2521 GetProcedureAddress(_PdhBindInputDataSourceA, PdhLib, 'PdhBindInputDataSourceA');
2522 asm
2523 MOV ESP, EBP
2524 POP EBP
2525 JMP [_PdhBindInputDataSourceA]
2526 end;
2527 end;
2528
2529 var
2530 _PdhBindInputDataSource: Pointer;
2531
PdhBindInputDataSourcenull2532 function PdhBindInputDataSource;
2533 begin
2534 GetProcedureAddress(_PdhBindInputDataSource, PdhLib, 'PdhBindInputDataSource' + AWSuffix);
2535 asm
2536 MOV ESP, EBP
2537 POP EBP
2538 JMP [_PdhBindInputDataSource]
2539 end;
2540 end;
2541
2542 var
2543 _PdhOpenQueryH: Pointer;
2544
PdhOpenQueryHnull2545 function PdhOpenQueryH;
2546 begin
2547 GetProcedureAddress(_PdhOpenQueryH, PdhLib, 'PdhOpenQueryH');
2548 asm
2549 MOV ESP, EBP
2550 POP EBP
2551 JMP [_PdhOpenQueryH]
2552 end;
2553 end;
2554
2555 var
2556 _PdhEnumMachinesHW: Pointer;
2557
PdhEnumMachinesHWnull2558 function PdhEnumMachinesHW;
2559 begin
2560 GetProcedureAddress(_PdhEnumMachinesHW, PdhLib, 'PdhEnumMachinesHW');
2561 asm
2562 MOV ESP, EBP
2563 POP EBP
2564 JMP [_PdhEnumMachinesHW]
2565 end;
2566 end;
2567
2568 var
2569 _PdhEnumMachinesHA: Pointer;
2570
PdhEnumMachinesHAnull2571 function PdhEnumMachinesHA;
2572 begin
2573 GetProcedureAddress(_PdhEnumMachinesHA, PdhLib, 'PdhEnumMachinesHA');
2574 asm
2575 MOV ESP, EBP
2576 POP EBP
2577 JMP [_PdhEnumMachinesHA]
2578 end;
2579 end;
2580
2581 var
2582 _PdhEnumMachinesH: Pointer;
2583
PdhEnumMachinesHnull2584 function PdhEnumMachinesH;
2585 begin
2586 GetProcedureAddress(_PdhEnumMachinesH, PdhLib, 'PdhEnumMachinesH' + AWSuffix);
2587 asm
2588 MOV ESP, EBP
2589 POP EBP
2590 JMP [_PdhEnumMachinesH]
2591 end;
2592 end;
2593
2594 var
2595 _PdhEnumObjectsHW: Pointer;
2596
PdhEnumObjectsHWnull2597 function PdhEnumObjectsHW;
2598 begin
2599 GetProcedureAddress(_PdhEnumObjectsHW, PdhLib, 'PdhEnumObjectsHW');
2600 asm
2601 MOV ESP, EBP
2602 POP EBP
2603 JMP [_PdhEnumObjectsHW]
2604 end;
2605 end;
2606
2607 var
2608 _PdhEnumObjectsHA: Pointer;
2609
PdhEnumObjectsHAnull2610 function PdhEnumObjectsHA;
2611 begin
2612 GetProcedureAddress(_PdhEnumObjectsHA, PdhLib, 'PdhEnumObjectsHA');
2613 asm
2614 MOV ESP, EBP
2615 POP EBP
2616 JMP [_PdhEnumObjectsHA]
2617 end;
2618 end;
2619
2620 var
2621 _PdhEnumObjectsH: Pointer;
2622
PdhEnumObjectsHnull2623 function PdhEnumObjectsH;
2624 begin
2625 GetProcedureAddress(_PdhEnumObjectsH, PdhLib, 'PdhEnumObjectsH' + AWSuffix);
2626 asm
2627 MOV ESP, EBP
2628 POP EBP
2629 JMP [_PdhEnumObjectsH]
2630 end;
2631 end;
2632
2633 var
2634 _PdhEnumObjectItemsHW: Pointer;
2635
PdhEnumObjectItemsHWnull2636 function PdhEnumObjectItemsHW;
2637 begin
2638 GetProcedureAddress(_PdhEnumObjectItemsHW, PdhLib, 'PdhEnumObjectItemsHW');
2639 asm
2640 MOV ESP, EBP
2641 POP EBP
2642 JMP [_PdhEnumObjectItemsHW]
2643 end;
2644 end;
2645
2646 var
2647 _PdhEnumObjectItemsHA: Pointer;
2648
PdhEnumObjectItemsHAnull2649 function PdhEnumObjectItemsHA;
2650 begin
2651 GetProcedureAddress(_PdhEnumObjectItemsHA, PdhLib, 'PdhEnumObjectItemsHA');
2652 asm
2653 MOV ESP, EBP
2654 POP EBP
2655 JMP [_PdhEnumObjectItemsHA]
2656 end;
2657 end;
2658
2659 var
2660 _PdhEnumObjectItemsH: Pointer;
2661
PdhEnumObjectItemsHnull2662 function PdhEnumObjectItemsH;
2663 begin
2664 GetProcedureAddress(_PdhEnumObjectItemsH, PdhLib, 'PdhEnumObjectItemsH' + AWSuffix);
2665 asm
2666 MOV ESP, EBP
2667 POP EBP
2668 JMP [_PdhEnumObjectItemsH]
2669 end;
2670 end;
2671
2672 var
2673 _PdhExpandWildCardPathHW: Pointer;
2674
PdhExpandWildCardPathHWnull2675 function PdhExpandWildCardPathHW;
2676 begin
2677 GetProcedureAddress(_PdhExpandWildCardPathHW, PdhLib, 'PdhExpandWildCardPathHW');
2678 asm
2679 MOV ESP, EBP
2680 POP EBP
2681 JMP [_PdhExpandWildCardPathHW]
2682 end;
2683 end;
2684
2685 var
2686 _PdhExpandWildCardPathHA: Pointer;
2687
PdhExpandWildCardPathHAnull2688 function PdhExpandWildCardPathHA;
2689 begin
2690 GetProcedureAddress(_PdhExpandWildCardPathHA, PdhLib, 'PdhExpandWildCardPathHA');
2691 asm
2692 MOV ESP, EBP
2693 POP EBP
2694 JMP [_PdhExpandWildCardPathHA]
2695 end;
2696 end;
2697
2698 var
2699 _PdhExpandWildCardPathH: Pointer;
2700
PdhExpandWildCardPathHnull2701 function PdhExpandWildCardPathH;
2702 begin
2703 GetProcedureAddress(_PdhExpandWildCardPathH, PdhLib, 'PdhExpandWildCardPathH' + AWSuffix);
2704 asm
2705 MOV ESP, EBP
2706 POP EBP
2707 JMP [_PdhExpandWildCardPathH]
2708 end;
2709 end;
2710
2711 var
2712 _PdhGetDataSourceTimeRangeH: Pointer;
2713
PdhGetDataSourceTimeRangeHnull2714 function PdhGetDataSourceTimeRangeH;
2715 begin
2716 GetProcedureAddress(_PdhGetDataSourceTimeRangeH, PdhLib, 'PdhGetDataSourceTimeRangeH');
2717 asm
2718 MOV ESP, EBP
2719 POP EBP
2720 JMP [_PdhGetDataSourceTimeRangeH]
2721 end;
2722 end;
2723
2724 var
2725 _PdhGetDefaultPerfObjectHW: Pointer;
2726
PdhGetDefaultPerfObjectHWnull2727 function PdhGetDefaultPerfObjectHW;
2728 begin
2729 GetProcedureAddress(_PdhGetDefaultPerfObjectHW, PdhLib, 'PdhGetDefaultPerfObjectHW');
2730 asm
2731 MOV ESP, EBP
2732 POP EBP
2733 JMP [_PdhGetDefaultPerfObjectHW]
2734 end;
2735 end;
2736
2737 var
2738 _PdhGetDefaultPerfObjectHA: Pointer;
2739
PdhGetDefaultPerfObjectHAnull2740 function PdhGetDefaultPerfObjectHA;
2741 begin
2742 GetProcedureAddress(_PdhGetDefaultPerfObjectHA, PdhLib, 'PdhGetDefaultPerfObjectHA');
2743 asm
2744 MOV ESP, EBP
2745 POP EBP
2746 JMP [_PdhGetDefaultPerfObjectHA]
2747 end;
2748 end;
2749
2750 var
2751 _PdhGetDefaultPerfObjectH: Pointer;
2752
PdhGetDefaultPerfObjectHnull2753 function PdhGetDefaultPerfObjectH;
2754 begin
2755 GetProcedureAddress(_PdhGetDefaultPerfObjectH, PdhLib, 'PdhGetDefaultPerfObjectH' + AWSuffix);
2756 asm
2757 MOV ESP, EBP
2758 POP EBP
2759 JMP [_PdhGetDefaultPerfObjectH]
2760 end;
2761 end;
2762
2763 var
2764 _PdhGetDefaultPerfCounterHW: Pointer;
2765
PdhGetDefaultPerfCounterHWnull2766 function PdhGetDefaultPerfCounterHW;
2767 begin
2768 GetProcedureAddress(_PdhGetDefaultPerfCounterHW, PdhLib, 'PdhGetDefaultPerfCounterHW');
2769 asm
2770 MOV ESP, EBP
2771 POP EBP
2772 JMP [_PdhGetDefaultPerfCounterHW]
2773 end;
2774 end;
2775
2776 var
2777 _PdhGetDefaultPerfCounterHA: Pointer;
2778
PdhGetDefaultPerfCounterHAnull2779 function PdhGetDefaultPerfCounterHA;
2780 begin
2781 GetProcedureAddress(_PdhGetDefaultPerfCounterHA, PdhLib, 'PdhGetDefaultPerfCounterHA');
2782 asm
2783 MOV ESP, EBP
2784 POP EBP
2785 JMP [_PdhGetDefaultPerfCounterHA]
2786 end;
2787 end;
2788
2789 var
2790 _PdhGetDefaultPerfCounterH: Pointer;
2791
PdhGetDefaultPerfCounterHnull2792 function PdhGetDefaultPerfCounterH;
2793 begin
2794 GetProcedureAddress(_PdhGetDefaultPerfCounterH, PdhLib, 'PdhGetDefaultPerfCounterH' + AWSuffix);
2795 asm
2796 MOV ESP, EBP
2797 POP EBP
2798 JMP [_PdhGetDefaultPerfCounterH]
2799 end;
2800 end;
2801
2802 var
2803 _PdhBrowseCountersHW: Pointer;
2804
PdhBrowseCountersHWnull2805 function PdhBrowseCountersHW;
2806 begin
2807 GetProcedureAddress(_PdhBrowseCountersHW, PdhLib, 'PdhBrowseCountersHW');
2808 asm
2809 MOV ESP, EBP
2810 POP EBP
2811 JMP [_PdhBrowseCountersHW]
2812 end;
2813 end;
2814
2815 var
2816 _PdhBrowseCountersHA: Pointer;
2817
PdhBrowseCountersHAnull2818 function PdhBrowseCountersHA;
2819 begin
2820 GetProcedureAddress(_PdhBrowseCountersHA, PdhLib, 'PdhBrowseCountersHA');
2821 asm
2822 MOV ESP, EBP
2823 POP EBP
2824 JMP [_PdhBrowseCountersHA]
2825 end;
2826 end;
2827
2828 var
2829 _PdhBrowseCountersH: Pointer;
2830
PdhBrowseCountersHnull2831 function PdhBrowseCountersH;
2832 begin
2833 GetProcedureAddress(_PdhBrowseCountersH, PdhLib, 'PdhBrowseCountersH' + AWSuffix);
2834 asm
2835 MOV ESP, EBP
2836 POP EBP
2837 JMP [_PdhBrowseCountersH]
2838 end;
2839 end;
2840
2841 var
2842 _PdhVerifySQLDBW: Pointer;
2843
PdhVerifySQLDBWnull2844 function PdhVerifySQLDBW;
2845 begin
2846 GetProcedureAddress(_PdhVerifySQLDBW, PdhLib, 'PdhVerifySQLDBW');
2847 asm
2848 MOV ESP, EBP
2849 POP EBP
2850 JMP [_PdhVerifySQLDBW]
2851 end;
2852 end;
2853
2854 var
2855 _PdhVerifySQLDBA: Pointer;
2856
PdhVerifySQLDBAnull2857 function PdhVerifySQLDBA;
2858 begin
2859 GetProcedureAddress(_PdhVerifySQLDBA, PdhLib, 'PdhVerifySQLDBA');
2860 asm
2861 MOV ESP, EBP
2862 POP EBP
2863 JMP [_PdhVerifySQLDBA]
2864 end;
2865 end;
2866
2867 var
2868 _PdhVerifySQLDB: Pointer;
2869
PdhVerifySQLDBnull2870 function PdhVerifySQLDB;
2871 begin
2872 GetProcedureAddress(_PdhVerifySQLDB, PdhLib, 'PdhVerifySQLDB' + AWSuffix);
2873 asm
2874 MOV ESP, EBP
2875 POP EBP
2876 JMP [_PdhVerifySQLDB]
2877 end;
2878 end;
2879
2880 var
2881 _PdhCreateSQLTablesW: Pointer;
2882
PdhCreateSQLTablesWnull2883 function PdhCreateSQLTablesW;
2884 begin
2885 GetProcedureAddress(_PdhCreateSQLTablesW, PdhLib, 'PdhCreateSQLTablesW');
2886 asm
2887 MOV ESP, EBP
2888 POP EBP
2889 JMP [_PdhCreateSQLTablesW]
2890 end;
2891 end;
2892
2893 var
2894 _PdhCreateSQLTablesA: Pointer;
2895
PdhCreateSQLTablesAnull2896 function PdhCreateSQLTablesA;
2897 begin
2898 GetProcedureAddress(_PdhCreateSQLTablesA, PdhLib, 'PdhCreateSQLTablesA');
2899 asm
2900 MOV ESP, EBP
2901 POP EBP
2902 JMP [_PdhCreateSQLTablesA]
2903 end;
2904 end;
2905
2906 var
2907 _PdhCreateSQLTables: Pointer;
2908
PdhCreateSQLTablesnull2909 function PdhCreateSQLTables;
2910 begin
2911 GetProcedureAddress(_PdhCreateSQLTables, PdhLib, 'PdhCreateSQLTables' + AWSuffix);
2912 asm
2913 MOV ESP, EBP
2914 POP EBP
2915 JMP [_PdhCreateSQLTables]
2916 end;
2917 end;
2918
2919 var
2920 _PdhEnumLogSetNamesW: Pointer;
2921
PdhEnumLogSetNamesWnull2922 function PdhEnumLogSetNamesW;
2923 begin
2924 GetProcedureAddress(_PdhEnumLogSetNamesW, PdhLib, 'PdhEnumLogSetNamesW');
2925 asm
2926 MOV ESP, EBP
2927 POP EBP
2928 JMP [_PdhEnumLogSetNamesW]
2929 end;
2930 end;
2931
2932 var
2933 _PdhEnumLogSetNamesA: Pointer;
2934
PdhEnumLogSetNamesAnull2935 function PdhEnumLogSetNamesA;
2936 begin
2937 GetProcedureAddress(_PdhEnumLogSetNamesA, PdhLib, 'PdhEnumLogSetNamesA');
2938 asm
2939 MOV ESP, EBP
2940 POP EBP
2941 JMP [_PdhEnumLogSetNamesA]
2942 end;
2943 end;
2944
2945 var
2946 _PdhEnumLogSetNames: Pointer;
2947
PdhEnumLogSetNamesnull2948 function PdhEnumLogSetNames;
2949 begin
2950 GetProcedureAddress(_PdhEnumLogSetNames, PdhLib, 'PdhEnumLogSetNames' + AWSuffix);
2951 asm
2952 MOV ESP, EBP
2953 POP EBP
2954 JMP [_PdhEnumLogSetNames]
2955 end;
2956 end;
2957
2958 var
2959 _PdhGetLogSetGUID: Pointer;
2960
PdhGetLogSetGUIDnull2961 function PdhGetLogSetGUID;
2962 begin
2963 GetProcedureAddress(_PdhGetLogSetGUID, PdhLib, 'PdhGetLogSetGUID');
2964 asm
2965 MOV ESP, EBP
2966 POP EBP
2967 JMP [_PdhGetLogSetGUID]
2968 end;
2969 end;
2970
2971 var
2972 _PdhSetLogSetRunID: Pointer;
2973
PdhSetLogSetRunIDnull2974 function PdhSetLogSetRunID;
2975 begin
2976 GetProcedureAddress(_PdhSetLogSetRunID, PdhLib, 'PdhSetLogSetRunID');
2977 asm
2978 MOV ESP, EBP
2979 POP EBP
2980 JMP [_PdhSetLogSetRunID]
2981 end;
2982 end;
2983
2984 {$ELSE}
2985
PdhGetDllVersionnull2986 function PdhGetDllVersion; external PdhLib name 'PdhGetDllVersion';
PdhOpenQueryAnull2987 function PdhOpenQueryA; external PdhLib name 'PdhOpenQueryA';
PdhOpenQueryWnull2988 function PdhOpenQueryW; external PdhLib name 'PdhOpenQueryW';
PdhOpenQuerynull2989 function PdhOpenQuery; external PdhLib name 'PdhOpenQuery' + AWSuffix;
PdhAddCounterAnull2990 function PdhAddCounterA; external PdhLib name 'PdhAddCounterA';
PdhAddCounterWnull2991 function PdhAddCounterW; external PdhLib name 'PdhAddCounterW';
PdhAddCounternull2992 function PdhAddCounter; external PdhLib name 'PdhAddCounter' + AWSuffix;
PdhRemoveCounternull2993 function PdhRemoveCounter; external PdhLib name 'PdhRemoveCounter';
PdhCollectQueryDatanull2994 function PdhCollectQueryData; external PdhLib name 'PdhCollectQueryData';
PdhCloseQuerynull2995 function PdhCloseQuery; external PdhLib name 'PdhCloseQuery';
PdhGetFormattedCounterValuenull2996 function PdhGetFormattedCounterValue; external PdhLib name 'PdhGetFormattedCounterValue';
PdhGetFormattedCounterArrayAnull2997 function PdhGetFormattedCounterArrayA; external PdhLib name 'PdhGetFormattedCounterArrayA';
PdhGetFormattedCounterArrayWnull2998 function PdhGetFormattedCounterArrayW; external PdhLib name 'PdhGetFormattedCounterArrayW';
PdhGetFormattedCounterArraynull2999 function PdhGetFormattedCounterArray; external PdhLib name 'PdhGetFormattedCounterArray' + AWSuffix;
PdhGetRawCounterValuenull3000 function PdhGetRawCounterValue; external PdhLib name 'PdhGetRawCounterValue';
PdhGetRawCounterArrayAnull3001 function PdhGetRawCounterArrayA; external PdhLib name 'PdhGetRawCounterArrayA';
PdhGetRawCounterArrayWnull3002 function PdhGetRawCounterArrayW; external PdhLib name 'PdhGetRawCounterArrayW';
PdhGetRawCounterArraynull3003 function PdhGetRawCounterArray; external PdhLib name 'PdhGetRawCounterArray' + AWSuffix;
PdhCalculateCounterFromRawValuenull3004 function PdhCalculateCounterFromRawValue; external PdhLib name 'PdhCalculateCounterFromRawValue';
PdhComputeCounterStatisticsnull3005 function PdhComputeCounterStatistics; external PdhLib name 'PdhComputeCounterStatistics';
PdhGetCounterInfoAnull3006 function PdhGetCounterInfoA; external PdhLib name 'PdhGetCounterInfoA';
PdhGetCounterInfoWnull3007 function PdhGetCounterInfoW; external PdhLib name 'PdhGetCounterInfoW';
PdhGetCounterInfonull3008 function PdhGetCounterInfo; external PdhLib name 'PdhGetCounterInfo' + AWSuffix;
PdhSetCounterScaleFactornull3009 function PdhSetCounterScaleFactor; external PdhLib name 'PdhSetCounterScaleFactor';
PdhConnectMachineAnull3010 function PdhConnectMachineA; external PdhLib name 'PdhConnectMachineA';
PdhConnectMachineWnull3011 function PdhConnectMachineW; external PdhLib name 'PdhConnectMachineW';
PdhConnectMachinenull3012 function PdhConnectMachine; external PdhLib name 'PdhConnectMachine' + AWSuffix;
PdhEnumMachinesAnull3013 function PdhEnumMachinesA; external PdhLib name 'PdhEnumMachinesA';
PdhEnumMachinesWnull3014 function PdhEnumMachinesW; external PdhLib name 'PdhEnumMachinesW';
PdhEnumMachinesnull3015 function PdhEnumMachines; external PdhLib name 'PdhEnumMachines' + AWSuffix;
PdhEnumObjectsAnull3016 function PdhEnumObjectsA; external PdhLib name 'PdhEnumObjectsA';
PdhEnumObjectsWnull3017 function PdhEnumObjectsW; external PdhLib name 'PdhEnumObjectsW';
PdhEnumObjectsnull3018 function PdhEnumObjects; external PdhLib name 'PdhEnumObjects' + AWSuffix;
PdhEnumObjectItemsAnull3019 function PdhEnumObjectItemsA; external PdhLib name 'PdhEnumObjectItemsA';
PdhEnumObjectItemsWnull3020 function PdhEnumObjectItemsW; external PdhLib name 'PdhEnumObjectItemsW';
PdhEnumObjectItemsnull3021 function PdhEnumObjectItems; external PdhLib name 'PdhEnumObjectItems' + AWSuffix;
PdhMakeCounterPathAnull3022 function PdhMakeCounterPathA; external PdhLib name 'PdhMakeCounterPathA';
PdhMakeCounterPathWnull3023 function PdhMakeCounterPathW; external PdhLib name 'PdhMakeCounterPathW';
PdhMakeCounterPathnull3024 function PdhMakeCounterPath; external PdhLib name 'PdhMakeCounterPath' + AWSuffix;
PdhParseCounterPathAnull3025 function PdhParseCounterPathA; external PdhLib name 'PdhParseCounterPathA';
PdhParseCounterPathWnull3026 function PdhParseCounterPathW; external PdhLib name 'PdhParseCounterPathW';
PdhParseCounterPathnull3027 function PdhParseCounterPath; external PdhLib name 'PdhParseCounterPath' + AWSuffix;
PdhParseInstanceNameAnull3028 function PdhParseInstanceNameA; external PdhLib name 'PdhParseInstanceNameA';
PdhParseInstanceNameWnull3029 function PdhParseInstanceNameW; external PdhLib name 'PdhParseInstanceNameW';
PdhParseInstanceNamenull3030 function PdhParseInstanceName; external PdhLib name 'PdhParseInstanceName' + AWSuffix;
PdhValidatePathAnull3031 function PdhValidatePathA; external PdhLib name 'PdhValidatePathA';
PdhValidatePathWnull3032 function PdhValidatePathW; external PdhLib name 'PdhValidatePathW';
PdhValidatePathnull3033 function PdhValidatePath; external PdhLib name 'PdhValidatePath' + AWSuffix;
PdhGetDefaultPerfObjectAnull3034 function PdhGetDefaultPerfObjectA; external PdhLib name 'PdhGetDefaultPerfObjectA';
PdhGetDefaultPerfObjectWnull3035 function PdhGetDefaultPerfObjectW; external PdhLib name 'PdhGetDefaultPerfObjectW';
PdhGetDefaultPerfObjectnull3036 function PdhGetDefaultPerfObject; external PdhLib name 'PdhGetDefaultPerfObject' + AWSuffix;
PdhGetDefaultPerfCounterAnull3037 function PdhGetDefaultPerfCounterA; external PdhLib name 'PdhGetDefaultPerfCounterA';
PdhGetDefaultPerfCounterWnull3038 function PdhGetDefaultPerfCounterW; external PdhLib name 'PdhGetDefaultPerfCounterW';
PdhGetDefaultPerfCounternull3039 function PdhGetDefaultPerfCounter; external PdhLib name 'PdhGetDefaultPerfCounter' + AWSuffix;
PdhBrowseCountersAnull3040 function PdhBrowseCountersA; external PdhLib name 'PdhBrowseCountersA';
PdhBrowseCountersWnull3041 function PdhBrowseCountersW; external PdhLib name 'PdhBrowseCountersW';
PdhBrowseCountersnull3042 function PdhBrowseCounters; external PdhLib name 'PdhBrowseCounters' + AWSuffix;
PdhExpandCounterPathAnull3043 function PdhExpandCounterPathA; external PdhLib name 'PdhExpandCounterPathA';
PdhExpandCounterPathWnull3044 function PdhExpandCounterPathW; external PdhLib name 'PdhExpandCounterPathW';
PdhExpandCounterPathnull3045 function PdhExpandCounterPath; external PdhLib name 'PdhExpandCounterPath' + AWSuffix;
PdhLookupPerfNameByIndexAnull3046 function PdhLookupPerfNameByIndexA; external PdhLib name 'PdhLookupPerfNameByIndexA';
PdhLookupPerfNameByIndexWnull3047 function PdhLookupPerfNameByIndexW; external PdhLib name 'PdhLookupPerfNameByIndexW';
PdhLookupPerfNameByIndexnull3048 function PdhLookupPerfNameByIndex; external PdhLib name 'PdhLookupPerfNameByIndex' + AWSuffix;
PdhLookupPerfIndexByNameAnull3049 function PdhLookupPerfIndexByNameA; external PdhLib name 'PdhLookupPerfIndexByNameA';
PdhLookupPerfIndexByNameWnull3050 function PdhLookupPerfIndexByNameW; external PdhLib name 'PdhLookupPerfIndexByNameW';
PdhLookupPerfIndexByNamenull3051 function PdhLookupPerfIndexByName; external PdhLib name 'PdhLookupPerfIndexByName' + AWSuffix;
PdhExpandWildCardPathAnull3052 function PdhExpandWildCardPathA; external PdhLib name 'PdhExpandWildCardPathA';
PdhExpandWildCardPathWnull3053 function PdhExpandWildCardPathW; external PdhLib name 'PdhExpandWildCardPathW';
PdhExpandWildCardPathnull3054 function PdhExpandWildCardPath; external PdhLib name 'PdhExpandWildCardPath' + AWSuffix;
PdhOpenLogAnull3055 function PdhOpenLogA; external PdhLib name 'PdhOpenLogA';
PdhOpenLogWnull3056 function PdhOpenLogW; external PdhLib name 'PdhOpenLogW';
PdhOpenLognull3057 function PdhOpenLog; external PdhLib name 'PdhOpenLog' + AWSuffix;
PdhUpdateLogAnull3058 function PdhUpdateLogA; external PdhLib name 'PdhUpdateLogA';
PdhUpdateLogWnull3059 function PdhUpdateLogW; external PdhLib name 'PdhUpdateLogW';
PdhUpdateLognull3060 function PdhUpdateLog; external PdhLib name 'PdhUpdateLog' + AWSuffix;
PdhUpdateLogFileCatalognull3061 function PdhUpdateLogFileCatalog; external PdhLib name 'PdhUpdateLogFileCatalog';
PdhGetLogFileSizenull3062 function PdhGetLogFileSize; external PdhLib name 'PdhGetLogFileSize';
PdhCloseLognull3063 function PdhCloseLog; external PdhLib name 'PdhCloseLog';
PdhSelectDataSourceAnull3064 function PdhSelectDataSourceA; external PdhLib name 'PdhSelectDataSourceA';
PdhSelectDataSourceWnull3065 function PdhSelectDataSourceW; external PdhLib name 'PdhSelectDataSourceW';
PdhSelectDataSourcenull3066 function PdhSelectDataSource; external PdhLib name 'PdhSelectDataSource' + AWSuffix;
PdhIsRealTimeQuerynull3067 function PdhIsRealTimeQuery; external PdhLib name 'PdhIsRealTimeQuery';
PdhSetQueryTimeRangenull3068 function PdhSetQueryTimeRange; external PdhLib name 'PdhSetQueryTimeRange';
PdhGetDataSourceTimeRangeAnull3069 function PdhGetDataSourceTimeRangeA; external PdhLib name 'PdhGetDataSourceTimeRangeA';
PdhGetDataSourceTimeRangeWnull3070 function PdhGetDataSourceTimeRangeW; external PdhLib name 'PdhGetDataSourceTimeRangeW';
PdhGetDataSourceTimeRangenull3071 function PdhGetDataSourceTimeRange; external PdhLib name 'PdhGetDataSourceTimeRange' + AWSuffix;
PdhCollectQueryDataExnull3072 function PdhCollectQueryDataEx; external PdhLib name 'PdhCollectQueryDataEx';
PdhFormatFromRawValuenull3073 function PdhFormatFromRawValue; external PdhLib name 'PdhFormatFromRawValue';
PdhGetCounterTimeBasenull3074 function PdhGetCounterTimeBase; external PdhLib name 'PdhGetCounterTimeBase';
PdhReadRawLogRecordnull3075 function PdhReadRawLogRecord; external PdhLib name 'PdhReadRawLogRecord';
PdhSetDefaultRealTimeDataSourcenull3076 function PdhSetDefaultRealTimeDataSource; external PdhLib name 'PdhSetDefaultRealTimeDataSource';
PdhBindInputDataSourceWnull3077 function PdhBindInputDataSourceW; external PdhLib name 'PdhBindInputDataSourceW';
PdhBindInputDataSourceAnull3078 function PdhBindInputDataSourceA; external PdhLib name 'PdhBindInputDataSourceA';
PdhBindInputDataSourcenull3079 function PdhBindInputDataSource; external PdhLib name 'PdhBindInputDataSource' + AWSuffix;
PdhOpenQueryHnull3080 function PdhOpenQueryH; external PdhLib name 'PdhOpenQueryH';
PdhEnumMachinesHWnull3081 function PdhEnumMachinesHW; external PdhLib name 'PdhEnumMachinesHW';
PdhEnumMachinesHAnull3082 function PdhEnumMachinesHA; external PdhLib name 'PdhEnumMachinesHA';
PdhEnumMachinesHnull3083 function PdhEnumMachinesH; external PdhLib name 'PdhEnumMachinesH' + AWSuffix;
PdhEnumObjectsHWnull3084 function PdhEnumObjectsHW; external PdhLib name 'PdhEnumObjectsHW';
PdhEnumObjectsHAnull3085 function PdhEnumObjectsHA; external PdhLib name 'PdhEnumObjectsHA';
PdhEnumObjectsHnull3086 function PdhEnumObjectsH; external PdhLib name 'PdhEnumObjectsH' + AWSuffix;
PdhEnumObjectItemsHWnull3087 function PdhEnumObjectItemsHW; external PdhLib name 'PdhEnumObjectItemsHW';
PdhEnumObjectItemsHAnull3088 function PdhEnumObjectItemsHA; external PdhLib name 'PdhEnumObjectItemsHA';
PdhEnumObjectItemsHnull3089 function PdhEnumObjectItemsH; external PdhLib name 'PdhEnumObjectItemsH' + AWSuffix;
PdhExpandWildCardPathHWnull3090 function PdhExpandWildCardPathHW; external PdhLib name 'PdhExpandWildCardPathHW';
PdhExpandWildCardPathHAnull3091 function PdhExpandWildCardPathHA; external PdhLib name 'PdhExpandWildCardPathHA';
PdhExpandWildCardPathHnull3092 function PdhExpandWildCardPathH; external PdhLib name 'PdhExpandWildCardPathH' + AWSuffix;
PdhGetDataSourceTimeRangeHnull3093 function PdhGetDataSourceTimeRangeH; external PdhLib name 'PdhGetDataSourceTimeRangeH';
PdhGetDefaultPerfObjectHWnull3094 function PdhGetDefaultPerfObjectHW; external PdhLib name 'PdhGetDefaultPerfObjectHW';
PdhGetDefaultPerfObjectHAnull3095 function PdhGetDefaultPerfObjectHA; external PdhLib name 'PdhGetDefaultPerfObjectHA';
PdhGetDefaultPerfObjectHnull3096 function PdhGetDefaultPerfObjectH; external PdhLib name 'PdhGetDefaultPerfObjectH' + AWSuffix;
PdhGetDefaultPerfCounterHWnull3097 function PdhGetDefaultPerfCounterHW; external PdhLib name 'PdhGetDefaultPerfCounterHW';
PdhGetDefaultPerfCounterHAnull3098 function PdhGetDefaultPerfCounterHA; external PdhLib name 'PdhGetDefaultPerfCounterHA';
PdhGetDefaultPerfCounterHnull3099 function PdhGetDefaultPerfCounterH; external PdhLib name 'PdhGetDefaultPerfCounterH' + AWSuffix;
PdhBrowseCountersHWnull3100 function PdhBrowseCountersHW; external PdhLib name 'PdhBrowseCountersHW';
PdhBrowseCountersHAnull3101 function PdhBrowseCountersHA; external PdhLib name 'PdhBrowseCountersHA';
PdhBrowseCountersHnull3102 function PdhBrowseCountersH; external PdhLib name 'PdhBrowseCountersH' + AWSuffix;
PdhVerifySQLDBWnull3103 function PdhVerifySQLDBW; external PdhLib name 'PdhVerifySQLDBW';
PdhVerifySQLDBAnull3104 function PdhVerifySQLDBA; external PdhLib name 'PdhVerifySQLDBA';
PdhVerifySQLDBnull3105 function PdhVerifySQLDB; external PdhLib name 'PdhVerifySQLDB' + AWSuffix;
PdhCreateSQLTablesWnull3106 function PdhCreateSQLTablesW; external PdhLib name 'PdhCreateSQLTablesW';
PdhCreateSQLTablesAnull3107 function PdhCreateSQLTablesA; external PdhLib name 'PdhCreateSQLTablesA';
PdhCreateSQLTablesnull3108 function PdhCreateSQLTables; external PdhLib name 'PdhCreateSQLTables' + AWSuffix;
PdhEnumLogSetNamesWnull3109 function PdhEnumLogSetNamesW; external PdhLib name 'PdhEnumLogSetNamesW';
PdhEnumLogSetNamesAnull3110 function PdhEnumLogSetNamesA; external PdhLib name 'PdhEnumLogSetNamesA';
PdhEnumLogSetNamesnull3111 function PdhEnumLogSetNames; external PdhLib name 'PdhEnumLogSetNames' + AWSuffix;
PdhGetLogSetGUIDnull3112 function PdhGetLogSetGUID; external PdhLib name 'PdhGetLogSetGUID';
PdhSetLogSetRunIDnull3113 function PdhSetLogSetRunID; external PdhLib name 'PdhSetLogSetRunID';
3114
3115 {$ENDIF DYNAMIC_LINK}
3116
3117 {$ENDIF JWA_INTERFACESECTION}
3118
3119 {$IFNDEF JWA_OMIT_SECTIONS}
3120 end.
3121 {$ENDIF JWA_OMIT_SECTIONS}
3122