📄 pdh.pas
字号:
TlLogHandle: DWORD;
TlLogFileName: PWideChar);
end;
end;
{$EXTERNALSYM _PDH_LOG_SERVICE_QUERY_INFO_W}
_PDH_LOG_SERVICE_QUERY_INFO_ = _PDH_LOG_SERVICE_QUERY_INFO_A;
TPdhLogServiceQueryInfoA = _PDH_LOG_SERVICE_QUERY_INFO_A;
TPdhLogServiceQueryInfoW = _PDH_LOG_SERVICE_QUERY_INFO_W;
TPdhLogServiceQueryInfo = TPdhLogServiceQueryInfoA;
//
// Time value constants
//
const
MAX_TIME_VALUE = LONGLONG($7FFFFFFFFFFFFFFF);
{$EXTERNALSYM MAX_TIME_VALUE}
MIN_TIME_VALUE = LONGLONG(0);
{$EXTERNALSYM MIN_TIME_VALUE}
// function definitions
function PdhGetDllVersion(var lpdwVersion: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDllVersion}
//
// Query Functions
//
function PdhOpenQueryA(szDataSource: PAnsiChar; dwUserData: DWORD_PTR;
var phQuery: HQUERY): Longint; stdcall;
{$EXTERNALSYM PdhOpenQueryA}
function PdhOpenQueryW(szDataSource: PWideChar; dwUserData: DWORD_PTR;
var phQuery: HQUERY): Longint; stdcall;
{$EXTERNALSYM PdhOpenQueryW}
function PdhOpenQuery(szDataSource: PChar; dwUserData: DWORD_PTR;
var phQuery: HQUERY): Longint; stdcall;
{$EXTERNALSYM PdhOpenQuery}
function PdhAddCounterA(hQuery: HQUERY; szFullCounterPath: PAnsiChar;
dwUserData: DWORD_PTR; var phCounter: HCOUNTER): Longint; stdcall;
{$EXTERNALSYM PdhAddCounterA}
function PdhAddCounterW(hQuery: HQUERY; szFullCounterPath: PWideChar;
dwUserData: DWORD_PTR; var phCounter: HCOUNTER): Longint; stdcall;
{$EXTERNALSYM PdhAddCounterW}
function PdhAddCounter(hQuery: HQUERY; szFullCounterPath: PChar;
dwUserData: DWORD_PTR; var phCounter: HCOUNTER): Longint; stdcall;
{$EXTERNALSYM PdhAddCounter}
function PdhRemoveCounter(hCounter: HCOUNTER): Longint; stdcall;
{$EXTERNALSYM PdhRemoveCounter}
function PdhCollectQueryData(hQuery: HQUERY): Longint; stdcall;
{$EXTERNALSYM PdhCollectQueryData}
function PdhCloseQuery(hQuery: HQUERY): Longint; stdcall;
{$EXTERNALSYM PdhCloseQuery}
//
// Counter Functions
//
function PdhGetFormattedCounterValue(hCounter: HCOUNTER; dwFormat: DWORD;
lpdwType: LPDWORD; var pValue: TPdhFmtCounterValue): Longint; stdcall;
{$EXTERNALSYM PdhGetFormattedCounterValue}
function PdhGetFormattedCounterArrayA(hCounter: HCOUNTER; dwFormat: DWORD;
lpdwBufferSize: LPDWORD; lpdwItemCount: LPDWORD;
ItemBuffer: PPdhFmtCounterValueItemA): Longint; stdcall;
{$EXTERNALSYM PdhGetFormattedCounterArrayA}
function PdhGetFormattedCounterArrayW(hCounter: HCOUNTER; dwFormat: DWORD;
lpdwBufferSize: LPDWORD; lpdwItemCount: LPDWORD;
ItemBuffer: PPdhFmtCounterValueItemW): Longint; stdcall;
{$EXTERNALSYM PdhGetFormattedCounterArrayW}
function PdhGetFormattedCounterArray(hCounter: HCOUNTER; dwFormat: DWORD;
lpdwBufferSize: LPDWORD; lpdwItemCount: LPDWORD;
ItemBuffer: PPdhFmtCounterValueItem): Longint; stdcall;
{$EXTERNALSYM PdhGetFormattedCounterArray}
// dwFormat flag values
const
PDH_FMT_RAW = DWORD($00000010);
{$EXTERNALSYM PDH_FMT_RAW}
PDH_FMT_ANSI = DWORD($00000020);
{$EXTERNALSYM PDH_FMT_ANSI}
PDH_FMT_UNICODE = DWORD($00000040);
{$EXTERNALSYM PDH_FMT_UNICODE}
PDH_FMT_LONG = DWORD($00000100);
{$EXTERNALSYM PDH_FMT_LONG}
PDH_FMT_DOUBLE = DWORD($00000200);
{$EXTERNALSYM PDH_FMT_DOUBLE}
PDH_FMT_LARGE = DWORD($00000400);
{$EXTERNALSYM PDH_FMT_LARGE}
PDH_FMT_NOSCALE = DWORD($00001000);
{$EXTERNALSYM PDH_FMT_NOSCALE}
PDH_FMT_1000 = DWORD($00002000);
{$EXTERNALSYM PDH_FMT_1000}
PDH_FMT_NODATA = DWORD($00004000);
{$EXTERNALSYM PDH_FMT_NODATA}
PERF_DETAIL_COSTLY = DWORD($00010000);
{$EXTERNALSYM PERF_DETAIL_COSTLY}
PERF_DETAIL_STANDARD = DWORD($0000FFFF);
{$EXTERNALSYM PERF_DETAIL_STANDARD}
function PdhGetRawCounterValue(hCounter: HCOUNTER; lpdwType: LPDWORD;
var pValue: TPdhRawCounter): Longint; stdcall;
{$EXTERNALSYM PdhGetRawCounterValue}
function PdhGetRawCounterArrayA(hCounter: HCOUNTER; lpdwBufferSize: LPDWORD;
lpdwItemCount: LPDWORD; ItemBuffer: PPdhRawCounterItemA): Longint; stdcall;
{$EXTERNALSYM PdhGetRawCounterArrayA}
function PdhGetRawCounterArrayW(hCounter: HCOUNTER; lpdwBufferSize: LPDWORD;
lpdwItemCount: LPDWORD; ItemBuffer: PPdhRawCounterItemW): Longint; stdcall;
{$EXTERNALSYM PdhGetRawCounterArrayW}
function PdhGetRawCounterArray(hCounter: HCOUNTER; lpdwBufferSize: LPDWORD;
lpdwItemCount: LPDWORD; ItemBuffer: PPdhRawCounterItem): Longint; stdcall;
{$EXTERNALSYM PdhGetRawCounterArray}
function PdhCalculateCounterFromRawValue(hCounter: HCOUNTER; dwFormat: DWORD;
rawValue1, rawValue2: PPdhRawCounter; fmtValue: PPdhFmtCounterValue): Longint; stdcall;
{$EXTERNALSYM PdhCalculateCounterFromRawValue}
function PdhComputeCounterStatistics(hCounter: HCOUNTER; dwFormat, dwFirstEntry,
dwNumEntries: DWORD; lpRawValueArray: PPdhRawCounter; var data: TPdhStatistics): Longint; stdcall;
{$EXTERNALSYM PdhComputeCounterStatistics}
function PdhGetCounterInfoA(hCounter: HCOUNTER; bRetrieveExplainText: Boolean;
pdwBufferSize: LPDWORD; lpBuffer: PPdhCounterInfoA): Longint; stdcall;
{$EXTERNALSYM PdhGetCounterInfoA}
function PdhGetCounterInfoW(hCounter: HCOUNTER; bRetrieveExplainText: Boolean;
pdwBufferSize: LPDWORD; lpBuffer: PPdhCounterInfoW): Longint; stdcall;
{$EXTERNALSYM PdhGetCounterInfoW}
function PdhGetCounterInfo(hCounter: HCOUNTER; bRetrieveExplainText: Boolean;
pdwBufferSize: LPDWORD; lpBuffer: PPdhCounterInfo): Longint; stdcall;
{$EXTERNALSYM PdhGetCounterInfo}
const
PDH_MAX_SCALE = Longint(7);
{$EXTERNALSYM PDH_MAX_SCALE}
PDH_MIN_SCALE = Longint(-7);
{$EXTERNALSYM PDH_MIN_SCALE}
function PdhSetCounterScaleFactor(hCounter: HCOUNTER; lFactor: Longint): Longint; stdcall;
{$EXTERNALSYM PdhSetCounterScaleFactor}
//
// Browsing and enumeration functions
//
function PdhConnectMachineA(szMachineName: PAnsiChar): Longint; stdcall;
{$EXTERNALSYM PdhConnectMachineA}
function PdhConnectMachineW(szMachineName: PWideChar): Longint; stdcall;
{$EXTERNALSYM PdhConnectMachineW}
function PdhConnectMachine(szMachineName: PChar): Longint; stdcall;
{$EXTERNALSYM PdhConnectMachine}
function PdhEnumMachinesA(szDataSource: PAnsiChar; mszMachineList: PAnsiChar;
var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumMachinesA}
function PdhEnumMachinesW(szDataSource: PWideChar; mszMachineList: PWideChar;
var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumMachinesW}
function PdhEnumMachines(szDataSource: PChar; mszMachineList: PChar;
var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumMachines}
function PdhEnumObjectsA(szDataSource, szMachineName: PAnsiChar; mszObjectList: PAnsiChar;
var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjectsA}
function PdhEnumObjectsW(szDataSource, szMachineName: PWideChar; mszObjectList: PWideChar;
var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjectsW}
function PdhEnumObjects(szDataSource, szMachineName: PChar; mszObjectList: PChar;
var pcchBufferSize: DWORD; dwDetailLevel: DWORD; bRefresh: BOOL): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjects}
function PdhEnumObjectItemsA(szDataSource, szMachineName, szObjectName: PAnsiChar;
mszCounterList: PAnsiChar; var pcchCounterListLength: DWORD; mszInstanceList: PAnsiChar;
var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjectItemsA}
function PdhEnumObjectItemsW(szDataSource, szMachineName, szObjectName: PWideChar;
mszCounterList: PWideChar; var pcchCounterListLength: DWORD; mszInstanceList: PWideChar;
var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjectItemsW}
function PdhEnumObjectItems(szDataSource, szMachineName, szObjectName: PChar;
mszCounterList: PChar; var pcchCounterListLength: DWORD; mszInstanceList: PChar;
var pcchInstanceListLength: DWORD; dwDetailLevel, dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhEnumObjectItems}
function PdhMakeCounterPathA(pCounterPathElements: PPdhCounterPathElementsA;
szFullPathBuffer: PAnsiChar; var pcchBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhMakeCounterPathA}
function PdhMakeCounterPathW(pCounterPathElements: PPdhCounterPathElementsW;
szFullPathBuffer: PWideChar; var pcchBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhMakeCounterPathW}
function PdhMakeCounterPath(pCounterPathElements: PPdhCounterPathElements;
szFullPathBuffer: PChar; var pcchBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhMakeCounterPath}
function PdhParseCounterPathA(szFullPathBuffer: PAnsiChar; pCounterPathElements:
PPdhCounterPathElementsA; var pdwBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseCounterPathA}
function PdhParseCounterPathW(szFullPathBuffer: PWideChar; pCounterPathElements:
PPdhCounterPathElementsW; var pdwBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseCounterPathW}
function PdhParseCounterPath(szFullPathBuffer: PChar; pCounterPathElements:
PPdhCounterPathElements; var pdwBufferSize: DWORD; dwFlags: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseCounterPath}
const
PDH_PATH_WBEM_RESULT = DWORD($00000001);
{$EXTERNALSYM PDH_PATH_WBEM_RESULT}
PDH_PATH_WBEM_INPUT = DWORD($00000002);
{$EXTERNALSYM PDH_PATH_WBEM_INPUT}
function PDH_PATH_LANG_FLAGS(LangId, Flags: DWORD): DWORD;
{$EXTERNALSYM PDH_PATH_LANG_FLAGS}
function PdhParseInstanceNameA(szInstanceString: PAnsiChar; szInstanceName: PAnsiChar;
var pcchInstanceNameLength: DWORD; szParentName: PAnsiChar;
var pcchParentNameLength: DWORD; lpIndex: LPDWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseInstanceNameA}
function PdhParseInstanceNameW(szInstanceString: PWideChar; szInstanceName: PWideChar;
var pcchInstanceNameLength: DWORD; szParentName: PWideChar;
var pcchParentNameLength: DWORD; lpIndex: LPDWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseInstanceNameW}
function PdhParseInstanceName(szInstanceString: PChar; szInstanceName: PChar;
var pcchInstanceNameLength: DWORD; szParentName: PChar;
var pcchParentNameLength: DWORD; lpIndex: LPDWORD): Longint; stdcall;
{$EXTERNALSYM PdhParseInstanceName}
function PdhValidatePathA(szFullPathBuffer: PAnsiChar): Longint; stdcall;
{$EXTERNALSYM PdhValidatePathA}
function PdhValidatePathW(szFullPathBuffer: PWideChar): Longint; stdcall;
{$EXTERNALSYM PdhValidatePathW}
function PdhValidatePath(szFullPathBuffer: PChar): Longint; stdcall;
{$EXTERNALSYM PdhValidatePath}
function PdhGetDefaultPerfObjectA(szDataSource, szMachineName: PAnsiChar;
szDefaultObjectName: PAnsiChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfObjectA}
function PdhGetDefaultPerfObjectW(szDataSource, szMachineName: PWideChar;
szDefaultObjectName: PWideChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfObjectW}
function PdhGetDefaultPerfObject(szDataSource, szMachineName: PChar;
szDefaultObjectName: PChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfObject}
function PdhGetDefaultPerfCounterA(szDataSource, szMachineName, szObjectName: PAnsiChar;
szDefaultCounterName: PAnsiChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterA}
function PdhGetDefaultPerfCounterW(szDataSource, szMachineName, szObjectName: PWideChar;
szDefaultCounterName: PWideChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterW}
function PdhGetDefaultPerfCounter(szDataSource, szMachineName, szObjectName: PChar;
szDefaultCounterName: PChar; var pcchBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounter}
type
CounterPathCallBack = function (dwArg: DWORD_PTR): Longint; stdcall;
{$EXTERNALSYM CounterPathCallBack}
const
PDH_CF_INCLUDEINSTANCEINDEX = 1 shl 0;
PDH_CF_SINGLECOUNTERPERADD = 1 shl 1;
PDH_CF_SINGLECOUNTERPERDIALOG = 1 shl 2;
PDH_CF_LOCALCOUNTERSONLY = 1 shl 3;
PDH_CF_WILDCARDINSTANCES = 1 shl 4;
PDH_CF_HIDEDETAILBOX = 1 shl 5;
PDH_CF_INITIALIZEPATH = 1 shl 6;
PDH_CF_DISABLEMACHINESELECTION = 1 shl 7;
PDH_CF_INCLUDECOSTLYOBJECTS = 1 shl 8;
PDH_CF_RESERVED = DWORD($FFFFFE00);
type
PPdhBrowseDlgConfigA = ^TPdhBrowseDlgConfigA;
PPdhBrowseDlgConfigW = ^TPdhBrowseDlgConfigW;
PPdhBrowseDlgConfig = PPdhBrowseDlgConfigA;
_BrowseDlgConfig_A = record
dwConfigFlags: DWORD;
hWndOwner: HWND;
szDataSource: PAnsiChar;
szReturnPathBuffer: PAnsiChar;
cchReturnPathLength: DWORD;
pCallBack: CounterPathCallBack;
dwCallBackArg: DWORD_PTR;
CallBackStatus: PDH_STATUS;
dwDefaultDetailLevel: DWORD;
szDialogBoxCaption: PAnsiChar;
end;
{$EXTERNALSYM _BrowseDlgConfig_A}
_BrowseDlgConfig_W = record
dwConfigFlags: DWORD;
hWndOwner: HWND;
szDataSource: PWideChar;
szReturnPathBuffer: PWideChar;
cchReturnPathLength: DWORD;
pCallBack: CounterPathCallBack;
dwCallBackArg: DWORD_PTR;
CallBackStatus: PDH_STATUS;
dwDefaultDetailLevel: DWORD;
szDialogBoxCaption: PWideChar;
end;
{$EXTERNALSYM _BrowseDlgConfig_W}
_BrowseDlgConfig_ = _BrowseDlgConfig_A;
TPdhBrowseDlgConfigA = _BrowseDlgConfig_A;
TPdhBrowseDlgConfigW = _BrowseDlgConfig_W;
TPdhBrowseDlgConfig = TPdhBrowseDlgConfigA;
function PdhBrowseCountersA(var pBrowseDlgData: TPdhBrowseDlgConfigA): Longint; stdcall;
{$EXTERNALSYM PdhBrowseCountersA}
function PdhBrowseCountersW(var pBrowseDlgData: TPdhBrowseDlgConfigW): Longint; stdcall;
{$EXTERNALSYM PdhBrowseCountersW}
function PdhBrowseCounters(var pBrowseDlgData: TPdhBrowseDlgConfig): Longint; stdcall;
{$EXTERNALSYM PdhBrowseCounters}
function PdhExpandCounterPathA(szWildCardPath: PAnsiChar; mszExpandedPathList: PAnsiChar;
var pcchPathListLength: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhExpandCounterPathA}
function PdhExpandCounterPathW(szWildCardPath: PWideChar; mszExpandedPathList: PWideChar;
var pcchPathListLength: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhExpandCounterPathW}
function PdhExpandCounterPath(szWildCardPath: PChar; mszExpandedPathList: PChar;
var pcchPathListLength: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhExpandCounterPath}
//
// v2.0 functions
//
function PdhLookupPerfNameByIndexA(szMachineName: PAnsiChar; dwNameIndex: DWORD;
szNameBuffer: PAnsiChar; var pcchNameBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfNameByIndexA}
function PdhLookupPerfNameByIndexW(szMachineName: PWideChar; dwNameIndex: DWORD;
szNameBuffer: PWideChar; var pcchNameBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfNameByIndexW}
function PdhLookupPerfNameByIndex(szMachineName: PChar; dwNameIndex: DWORD;
szNameBuffer: PChar; var pcchNameBufferSize: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfNameByIndex}
function PdhLookupPerfIndexByNameA(szMachineName, szNameBuffer: PAnsiChar;
var pdwIndex: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfIndexByNameA}
function PdhLookupPerfIndexByNameW(szMachineName, szNameBuffer: PWideChar;
var pdwIndex: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfIndexByNameW}
function PdhLookupPerfIndexByName(szMachineName, szNameBuffer: PChar;
var pdwIndex: DWORD): Longint; stdcall;
{$EXTERNALSYM PdhLookupPerfIndexByName}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -