📄 pdh.pas
字号:
{******************************************************************}
{ }
{ Borland Delphi Runtime Library }
{ Performance Data Helper interface unit }
{ }
{ Portions created by Microsoft are }
{ Copyright (C) 1995-1999 Microsoft Corporation. }
{ All Rights Reserved. }
{ }
{ The original file is: pdh.h, released June 2000. }
{ The original Pascal code is: Pdh.pas, released December 2000 }
{ The initial developer of the Pascal code is Marcel van Brakel }
{ (brakelm@bart.nl). }
{ }
{ Portions created by Marcel van Brakel are }
{ Copyright (C) 1999 Marcel van Brakel. }
{ }
{ Obtained through: }
{ Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project }
{ JEDI home page, located at http://delphi-jedi.org }
{ }
{ The contents of this file are used with permission, subject to }
{ the Mozilla Public License Version 1.1 (the "License"); you may }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
{ implied. See the License for the specific language governing }
{ rights and limitations under the License. }
{ }
{******************************************************************}
unit Pdh;
{$WEAKPACKAGEUNIT}
{$HPPEMIT ''}
{$HPPEMIT '#include "pdh.h"'}
{$HPPEMIT ''}
{$I WINDEFINES.INC}
interface
uses
WinBase, WinType, WinPerf;
type
PDH_STATUS = DWORD;
{$EXTERNALSYM PDH_STATUS}
const
// version info
PDH_CVERSION_WIN40 = DWORD($0400);
{$EXTERNALSYM PDH_CVERSION_WIN40}
PDH_CVERSION_WIN50 = DWORD($0500);
{$EXTERNALSYM PDH_CVERSION_WIN50}
// v1.1 revision of PDH -- basic log functions
// v1.2 of the PDH -- adds variable instance counters
// v1.3 of the PDH -- adds log service control & stubs for NT5/PDH v2 fn's
// v2.0 of the PDH -- is the NT v 5.0 B2 version
PDH_VERSION = DWORD((PDH_CVERSION_WIN50) + $0003);
{$EXTERNALSYM PDH_VERSION}
// define severity masks
function IsSuccessSeverity(ErrorCode: Longint): Boolean;
{$EXTERNALSYM IsSuccessSeverity}
function IsInformationalSeverity(ErrorCode: Longint): Boolean;
{$EXTERNALSYM IsInformationalSeverity}
function IsWarningSeverity(ErrorCode: Longint): Boolean;
{$EXTERNALSYM IsWarningSeverity}
function IsErrorSeverity(ErrorCode: Longint): Boolean;
{$EXTERNALSYM IsErrorSeverity}
type
// data type definitions
HCOUNTER = HANDLE;
{$EXTERNALSYM HCOUNTER}
HQUERY = HANDLE;
{$EXTERNALSYM HQUERY}
HLOG = HANDLE;
{$EXTERNALSYM HLOG}
PPDH_RAW_COUNTER = ^PDH_RAW_COUNTER;
{$EXTERNALSYM PPDH_RAW_COUNTER}
_PDH_RAW_COUNTER = record
CStatus: DWORD;
TimeStamp: FILETIME;
FirstValue: LONGLONG;
SecondValue: LONGLONG;
MultiCount: DWORD;
end;
{$EXTERNALSYM _PDH_RAW_COUNTER}
PDH_RAW_COUNTER = _PDH_RAW_COUNTER;
{$EXTERNALSYM PDH_RAW_COUNTER}
TPdhRawCounter = PDH_RAW_COUNTER;
PPdhRawCounter = PPDH_RAW_COUNTER;
PPDH_RAW_COUNTER_ITEM_A = ^PDH_RAW_COUNTER_ITEM_A;
{$EXTERNALSYM PPDH_RAW_COUNTER_ITEM_A}
_PDH_RAW_COUNTER_ITEM_A = record
szName: LPSTR;
RawValue: PDH_RAW_COUNTER;
end;
{$EXTERNALSYM _PDH_RAW_COUNTER_ITEM_A}
PDH_RAW_COUNTER_ITEM_A = _PDH_RAW_COUNTER_ITEM_A;
{$EXTERNALSYM PDH_RAW_COUNTER_ITEM_A}
TPdhRawCounterItemA = PDH_RAW_COUNTER_ITEM_A;
PPdhRawCounterItemA = PPDH_RAW_COUNTER_ITEM_A;
PPDH_RAW_COUNTER_ITEM_W = ^PDH_RAW_COUNTER_ITEM_W;
{$EXTERNALSYM PPDH_RAW_COUNTER_ITEM_W}
_PDH_RAW_COUNTER_ITEM_W = record
szName: LPWSTR;
RawValue: PDH_RAW_COUNTER;
end;
{$EXTERNALSYM _PDH_RAW_COUNTER_ITEM_W}
PDH_RAW_COUNTER_ITEM_W = _PDH_RAW_COUNTER_ITEM_W;
{$EXTERNALSYM PDH_RAW_COUNTER_ITEM_W}
TPdhRawCounterItemW = PDH_RAW_COUNTER_ITEM_W;
PPdhRawCounterItemW = PPDH_RAW_COUNTER_ITEM_W;
{$IFDEF UNICODE}
PPdhRawCounterItem = PPdhRawCounterItemW;
PDH_RAW_COUNTER_ITEM = _PDH_RAW_COUNTER_ITEM_W;
{$EXTERNALSYM PDH_RAW_COUNTER_ITEM}
PPDH_RAW_COUNTER_ITEM = PPDH_RAW_COUNTER_ITEM_W;
{$EXTERNALSYM PPDH_RAW_COUNTER_ITEM}
TPdhRawCounterItem = _PDH_RAW_COUNTER_ITEM_W;
{$ELSE}
PPdhRawCounterItem = PPdhRawCounterItemA;
PDH_RAW_COUNTER_ITEM = _PDH_RAW_COUNTER_ITEM_A;
{$EXTERNALSYM PDH_RAW_COUNTER_ITEM}
PPDH_RAW_COUNTER_ITEM = PPDH_RAW_COUNTER_ITEM_A;
{$EXTERNALSYM PPDH_RAW_COUNTER_ITEM}
TPdhRawCounterItem = _PDH_RAW_COUNTER_ITEM_A;
{$ENDIF}
PPDH_FMT_COUNTERVALUE = ^PDH_FMT_COUNTERVALUE;
{$EXTERNALSYM PPDH_FMT_COUNTERVALUE}
_PDH_FMT_COUNTERVALUE = record
CStatus: DWORD;
case Longint of
1: (longValue: LONG);
2: (doubleValue: Double);
3: (largeValue: LONGLONG);
4: (AnsiStringValue: LPSTR);
5: (WideStringValue: LPCWSTR);
end;
{$EXTERNALSYM _PDH_FMT_COUNTERVALUE}
PDH_FMT_COUNTERVALUE = _PDH_FMT_COUNTERVALUE;
{$EXTERNALSYM PDH_FMT_COUNTERVALUE}
TPdhFmtCounterValue = PDH_FMT_COUNTERVALUE;
PPdhFmtCounterValue = PPDH_FMT_COUNTERVALUE;
PPDH_FMT_COUNTERVALUE_ITEM_A = ^PDH_FMT_COUNTERVALUE_ITEM_A;
{$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM_A}
_PDH_FMT_COUNTERVALUE_ITEM_A = record
szName: LPSTR;
FmtValue: PDH_FMT_COUNTERVALUE;
end;
{$EXTERNALSYM _PDH_FMT_COUNTERVALUE_ITEM_A}
PDH_FMT_COUNTERVALUE_ITEM_A = _PDH_FMT_COUNTERVALUE_ITEM_A;
{$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM_A}
TPdhFmtCounterValueItemA = PDH_FMT_COUNTERVALUE_ITEM_A;
PPdhFmtCounterValueItemA = PPDH_FMT_COUNTERVALUE_ITEM_A;
PPDH_FMT_COUNTERVALUE_ITEM_W = ^PDH_FMT_COUNTERVALUE_ITEM_W;
{$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM_W}
_PDH_FMT_COUNTERVALUE_ITEM_W = record
szName: LPWSTR;
FmtValue: PDH_FMT_COUNTERVALUE;
end;
{$EXTERNALSYM _PDH_FMT_COUNTERVALUE_ITEM_W}
PDH_FMT_COUNTERVALUE_ITEM_W = _PDH_FMT_COUNTERVALUE_ITEM_W;
{$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM_W}
TPdhFmtCounterValueItemW = PDH_FMT_COUNTERVALUE_ITEM_W;
PPdhFmtCounterValueItemW = PPDH_FMT_COUNTERVALUE_ITEM_W;
{$IFDEF UNICODE}
PPdhFmtCounterValueItem = PPdhFmtCounterValueItemW;
PDH_FMT_COUNTERVALUE_ITEM = _PDH_FMT_COUNTERVALUE_ITEM_W;
{$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM}
PPDH_FMT_COUNTERVALUE_ITEM = PPDH_FMT_COUNTERVALUE_ITEM_W;
{$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM}
TPdhFmtCounterValueItem = _PDH_FMT_COUNTERVALUE_ITEM_W;
{$ELSE}
PPdhFmtCounterValueItem = PPdhFmtCounterValueItemA;
PDH_FMT_COUNTERVALUE_ITEM = _PDH_FMT_COUNTERVALUE_ITEM_A;
{$EXTERNALSYM PDH_FMT_COUNTERVALUE_ITEM}
PPDH_FMT_COUNTERVALUE_ITEM = PPDH_FMT_COUNTERVALUE_ITEM_A;
{$EXTERNALSYM PPDH_FMT_COUNTERVALUE_ITEM}
TPdhFmtCounterValueItem = _PDH_FMT_COUNTERVALUE_ITEM_A;
{$ENDIF}
PPDH_STATISTICS = ^PDH_STATISTICS;
{$EXTERNALSYM PPDH_STATISTICS}
_PDH_STATISTICS = record
dwFormat: DWORD;
Count: DWORD;
min: PDH_FMT_COUNTERVALUE;
max: PDH_FMT_COUNTERVALUE;
mean: PDH_FMT_COUNTERVALUE;
end;
{$EXTERNALSYM _PDH_STATISTICS}
PDH_STATISTICS = _PDH_STATISTICS;
{$EXTERNALSYM PDH_STATISTICS}
TPdhStatistics = PDH_STATISTICS;
PPdhStatistics = PPDH_STATISTICS;
PPDH_COUNTER_PATH_ELEMENTS_A = ^PDH_COUNTER_PATH_ELEMENTS_A;
{$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS_A}
_PDH_COUNTER_PATH_ELEMENTS_A = record
szMachineName: LPSTR;
szObjectName: LPSTR;
szInstanceName: LPSTR;
szParentInstance: LPSTR;
dwInstanceIndex: DWORD;
szCounterName: LPSTR;
end;
{$EXTERNALSYM _PDH_COUNTER_PATH_ELEMENTS_A}
PDH_COUNTER_PATH_ELEMENTS_A = _PDH_COUNTER_PATH_ELEMENTS_A;
{$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS_A}
TPdhCounterPathElementsA = PDH_COUNTER_PATH_ELEMENTS_A;
PPdhCounterPathElementsA = PPDH_COUNTER_PATH_ELEMENTS_A;
PPDH_COUNTER_PATH_ELEMENTS_W = ^PDH_COUNTER_PATH_ELEMENTS_W;
{$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS_W}
_PDH_COUNTER_PATH_ELEMENTS_W = record
szMachineName: LPWSTR;
szObjectName: LPWSTR;
szInstanceName: LPWSTR;
szParentInstance: LPWSTR;
dwInstanceIndex: DWORD;
szCounterName: LPWSTR;
end;
{$EXTERNALSYM _PDH_COUNTER_PATH_ELEMENTS_W}
PDH_COUNTER_PATH_ELEMENTS_W = _PDH_COUNTER_PATH_ELEMENTS_W;
{$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS_W}
TPdhCounterPathElementsW = PDH_COUNTER_PATH_ELEMENTS_W;
PPdhCounterPathElementsW = PPDH_COUNTER_PATH_ELEMENTS_W;
{$IFDEF UNICODE}
PPdhCounterPathElements = PPdhCounterPathElementsW;
PDH_COUNTER_PATH_ELEMENTS = _PDH_COUNTER_PATH_ELEMENTS_W;
{$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS}
PPDH_COUNTER_PATH_ELEMENTS = PPDH_COUNTER_PATH_ELEMENTS_W;
{$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS}
TPdhCounterPathElements = _PDH_COUNTER_PATH_ELEMENTS_W;
{$ELSE}
PPdhCounterPathElements = PPdhCounterPathElementsA;
PDH_COUNTER_PATH_ELEMENTS = _PDH_COUNTER_PATH_ELEMENTS_A;
{$EXTERNALSYM PDH_COUNTER_PATH_ELEMENTS}
PPDH_COUNTER_PATH_ELEMENTS = PPDH_COUNTER_PATH_ELEMENTS_A;
{$EXTERNALSYM PPDH_COUNTER_PATH_ELEMENTS}
TPdhCounterPathElements = _PDH_COUNTER_PATH_ELEMENTS_A;
{$ENDIF}
PPDH_DATA_ITEM_PATH_ELEMENTS_A = ^PDH_DATA_ITEM_PATH_ELEMENTS_A;
{$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS_A}
_PDH_DATA_ITEM_PATH_ELEMENTS_A = record
szMachineName: LPSTR;
ObjectGUID: GUID;
dwItemId: DWORD;
szInstanceName: LPSTR;
end;
{$EXTERNALSYM _PDH_DATA_ITEM_PATH_ELEMENTS_A}
PDH_DATA_ITEM_PATH_ELEMENTS_A = _PDH_DATA_ITEM_PATH_ELEMENTS_A;
{$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS_A}
TPdhDataItemPathElementsA = PDH_DATA_ITEM_PATH_ELEMENTS_A;
PPdhDataItemPathElementsA = PPDH_DATA_ITEM_PATH_ELEMENTS_A;
PPDH_DATA_ITEM_PATH_ELEMENTS_W = ^PDH_DATA_ITEM_PATH_ELEMENTS_W;
{$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS_W}
_PDH_DATA_ITEM_PATH_ELEMENTS_W = record
szMachineName: LPWSTR;
ObjectGUID: GUID;
dwItemId: DWORD;
szInstanceName: LPWSTR;
end;
{$EXTERNALSYM _PDH_DATA_ITEM_PATH_ELEMENTS_W}
PDH_DATA_ITEM_PATH_ELEMENTS_W = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
{$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS_W}
TPdhDataItemPathElementsW = PDH_DATA_ITEM_PATH_ELEMENTS_W;
PPdhDataItemPathElementsW = PPDH_DATA_ITEM_PATH_ELEMENTS_W;
{$IFDEF UNICODE}
PPdhDataItemPathElements = PPdhDataItemPathElementsW;
PDH_DATA_ITEM_PATH_ELEMENTS = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
{$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS}
PPDH_DATA_ITEM_PATH_ELEMENTS = PPDH_DATA_ITEM_PATH_ELEMENTS_W;
{$EXTERNALSYM PPDH_DATA_ITEM_PATH_ELEMENTS}
TPdhDataItemPathElements = _PDH_DATA_ITEM_PATH_ELEMENTS_W;
{$ELSE}
PPdhDataItemPathElements = PPdhDataItemPathElementsA;
PDH_DATA_ITEM_PATH_ELEMENTS = _PDH_DATA_ITEM_PATH_ELEMENTS_A;
{$EXTERNALSYM PDH_DATA_ITEM_PATH_ELEMENTS}
PPDH_DATA_ITEM_PATH_ELEMENTS = PPDH_DATA_ITEM_PATH_ELEMENTS_A;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -