📄 pdh.pas
字号:
{$EXTERNALSYM PDH_LOGSVC_STATUS_STOPPED}
PDH_LOGSVC_STATUS_PAUSED = DWORD($00004000);
{$EXTERNALSYM PDH_LOGSVC_STATUS_PAUSED}
PDH_LOGSVC_STATUS_ERROR = DWORD($00008000);
{$EXTERNALSYM PDH_LOGSVC_STATUS_ERROR}
PDH_LOGSVC_STATUS_PENDING = DWORD($00010000);
{$EXTERNALSYM PDH_LOGSVC_STATUS_PENDING}
PDH_LOGSVC_NAME_UNDEFINED = DWORD(-1);
{$EXTERNALSYM PDH_LOGSVC_NAME_UNDEFINED}
PDH_LOGSVC_NAME_MMDDHH = DWORD(0);
{$EXTERNALSYM PDH_LOGSVC_NAME_MMDDHH}
PDH_LOGSVC_NAME_NNNNNN = DWORD(1);
{$EXTERNALSYM PDH_LOGSVC_NAME_NNNNNN}
PDH_LOGSVC_NAME_YYDDD = DWORD(2);
{$EXTERNALSYM PDH_LOGSVC_NAME_YYDDD}
PDH_LOGSVC_NAME_YYMM = DWORD(3);
{$EXTERNALSYM PDH_LOGSVC_NAME_YYMM}
PDH_LOGSVC_NAME_YYMMDD = DWORD(4);
{$EXTERNALSYM PDH_LOGSVC_NAME_YYMMDD}
PDH_LOGSVC_NAME_YYMMDDHH = DWORD(5);
{$EXTERNALSYM PDH_LOGSVC_NAME_YYMMDDHH}
PDH_LOGSVC_RENAME_UNDEFINED = DWORD(-1);
{$EXTERNALSYM PDH_LOGSVC_RENAME_UNDEFINED}
PDH_LOGSVC_RENAME_HOURS = DWORD(0);
{$EXTERNALSYM PDH_LOGSVC_RENAME_HOURS}
PDH_LOGSVC_RENAME_DAYS = DWORD(1);
{$EXTERNALSYM PDH_LOGSVC_RENAME_DAYS}
PDH_LOGSVC_RENAME_MONTHS = DWORD(2);
{$EXTERNALSYM PDH_LOGSVC_RENAME_MONTHS}
PDH_LOGSVC_RENAME_KBYTES = DWORD(3);
{$EXTERNALSYM PDH_LOGSVC_RENAME_KBYTES}
PDH_LOGSVC_RENAME_MBYTES = DWORD(4);
{$EXTERNALSYM PDH_LOGSVC_RENAME_MBYTES}
function PdhLogServiceCommandA(szMachineName, szQueryName: LPCSTR;
dwFlags: DWORD; pdwStatus: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceCommandA}
function PdhLogServiceCommandW(szMachineName, szQueryName: LPCWSTR;
dwFlags: DWORD; pdwStatus: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceCommandW}
{$IFDEF UNICODE}
function PdhLogServiceCommand(szMachineName, szQueryName: LPCWSTR;
dwFlags: DWORD; pdwStatus: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceCommand}
{$ELSE}
function PdhLogServiceCommand(szMachineName, szQueryName: LPCSTR;
dwFlags: DWORD; pdwStatus: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceCommand}
{$ENDIF}
function PdhLogServiceControlA(szMachineName, szQueryName: LPCSTR; dwFlags: DWORD;
pInfoBuffer: PPDH_LOG_SERVICE_QUERY_INFO_A; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceControlA}
function PdhLogServiceControlW(szMachineName, szQueryName: LPCWSTR; dwFlags: DWORD;
pInfoBuffer: PPDH_LOG_SERVICE_QUERY_INFO_W; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceControlW}
{$IFDEF UNICODE}
function PdhLogServiceControl(szMachineName, szQueryName: LPCWSTR; dwFlags: DWORD;
pInfoBuffer: PPDH_LOG_SERVICE_QUERY_INFO_W; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceControl}
{$ELSE}
function PdhLogServiceControl(szMachineName, szQueryName: LPCSTR; dwFlags: DWORD;
pInfoBuffer: PPDH_LOG_SERVICE_QUERY_INFO_A; pdwBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhLogServiceControl}
{$ENDIF}
implementation
const
PdhLib = 'pdh.dll';
function IsSuccessSeverity(ErrorCode: Longint): Boolean;
begin
Result := (ErrorCode and $C0000000) = $00000000;
end;
function IsInformationalSeverity(ErrorCode: Longint): Boolean;
begin
Result := (ErrorCode and $C0000000) = $40000000;
end;
function IsWarningSeverity(ErrorCode: Longint): Boolean;
begin
Result := (ErrorCode and $C0000000) = $80000000;
end;
function IsErrorSeverity(ErrorCode: Longint): Boolean;
begin
Result := (ErrorCode and $C0000000) = $C0000000;
end;
function PdhGetDllVersion; external PdhLib name 'PdhGetDllVersion';
function PdhOpenQueryA; external PdhLib name 'PdhOpenQueryA';
function PdhOpenQueryW; external PdhLib name 'PdhOpenQueryW';
{$IFDEF UNICODE}
function PdhOpenQuery; external PdhLib name 'PdhOpenQueryW';
{$ELSE}
function PdhOpenQuery; external PdhLib name 'PdhOpenQueryA';
{$ENDIF}
function PdhAddCounterA; external PdhLib name 'PdhAddCounterA';
function PdhAddCounterW; external PdhLib name 'PdhAddCounterW';
{$IFDEF UNICODE}
function PdhAddCounter; external PdhLib name 'PdhAddCounterW';
{$ELSE}
function PdhAddCounter; external PdhLib name 'PdhAddCounterA';
{$ENDIF}
function PdhRemoveCounter; external PdhLib name 'PdhRemoveCounter';
function PdhCollectQueryData; external PdhLib name 'PdhCollectQueryData';
function PdhCloseQuery; external PdhLib name 'PdhCloseQuery';
function PdhGetFormattedCounterValue; external PdhLib name 'PdhGetFormattedCounterValue';
function PdhGetFormattedCounterArrayA; external PdhLib name 'PdhGetFormattedCounterArrayA';
function PdhGetFormattedCounterArrayW; external PdhLib name 'PdhGetFormattedCounterArrayW';
{$IFDEF UNICODE}
function PdhGetFormattedCounterArray; external PdhLib name 'PdhGetFormattedCounterArrayW';
{$ELSE}
function PdhGetFormattedCounterArray; external PdhLib name 'PdhGetFormattedCounterArrayA';
{$ENDIF}
function PdhGetRawCounterValue; external PdhLib name 'PdhGetRawCounterValue';
function PdhGetRawCounterArrayA; external PdhLib name 'PdhGetRawCounterArrayA';
function PdhGetRawCounterArrayW; external PdhLib name 'PdhGetRawCounterArrayW';
{$IFDEF UNICODE}
function PdhGetRawCounterArray; external PdhLib name 'PdhGetRawCounterArrayW';
{$ELSE}
function PdhGetRawCounterArray; external PdhLib name 'PdhGetRawCounterArrayA';
{$ENDIF}
function PdhCalculateCounterFromRawValue; external PdhLib name 'PdhCalculateCounterFromRawValue';
function PdhComputeCounterStatistics; external PdhLib name 'PdhComputeCounterStatistics';
function PdhGetCounterInfoA; external PdhLib name 'PdhGetCounterInfoA';
function PdhGetCounterInfoW; external PdhLib name 'PdhGetCounterInfoW';
{$IFDEF UNICODE}
function PdhGetCounterInfo; external PdhLib name 'PdhGetCounterInfoW';
{$ELSE}
function PdhGetCounterInfo; external PdhLib name 'PdhGetCounterInfoA';
{$ENDIF}
function PdhSetCounterScaleFactor; external PdhLib name 'PdhSetCounterScaleFactor';
function PdhConnectMachineA; external PdhLib name 'PdhConnectMachineA';
function PdhConnectMachineW; external PdhLib name 'PdhConnectMachineW';
{$IFDEF UNICODE}
function PdhConnectMachine; external PdhLib name 'PdhConnectMachineW';
{$ELSE}
function PdhConnectMachine; external PdhLib name 'PdhConnectMachineA';
{$ENDIF}
function PdhEnumMachinesA; external PdhLib name 'PdhEnumMachinesA';
function PdhEnumMachinesW; external PdhLib name 'PdhEnumMachinesW';
{$IFDEF UNICODE}
function PdhEnumMachines; external PdhLib name 'PdhEnumMachinesW';
{$ELSE}
function PdhEnumMachines; external PdhLib name 'PdhEnumMachinesA';
{$ENDIF}
function PdhEnumObjectsA; external PdhLib name 'PdhEnumObjectsA';
function PdhEnumObjectsW; external PdhLib name 'PdhEnumObjectsW';
{$IFDEF UNICODE}
function PdhEnumObjects; external PdhLib name 'PdhEnumObjectsW';
{$ELSE}
function PdhEnumObjects; external PdhLib name 'PdhEnumObjectsA';
{$ENDIF}
function PdhEnumObjectItemsA; external PdhLib name 'PdhEnumObjectItemsA';
function PdhEnumObjectItemsW; external PdhLib name 'PdhEnumObjectItemsW';
{$IFDEF UNICODE}
function PdhEnumObjectItems; external PdhLib name 'PdhEnumObjectItemsW';
{$ELSE}
function PdhEnumObjectItems; external PdhLib name 'PdhEnumObjectItemsA';
{$ENDIF}
function PdhMakeCounterPathA; external PdhLib name 'PdhMakeCounterPathA';
function PdhMakeCounterPathW; external PdhLib name 'PdhMakeCounterPathW';
{$IFDEF UNICODE}
function PdhMakeCounterPath; external PdhLib name 'PdhMakeCounterPathW';
{$ELSE}
function PdhMakeCounterPath; external PdhLib name 'PdhMakeCounterPathA';
{$ENDIF}
function PdhParseCounterPathA; external PdhLib name 'PdhParseCounterPathA';
function PdhParseCounterPathW; external PdhLib name 'PdhParseCounterPathW';
{$IFDEF UNICODE}
function PdhParseCounterPath; external PdhLib name 'PdhParseCounterPathW';
{$ELSE}
function PdhParseCounterPath; external PdhLib name 'PdhParseCounterPathA';
{$ENDIF}
function PDH_PATH_LANG_FLAGS(LangId, Flags: DWORD): DWORD;
begin
Result := DWORD(((LangId and $0000FFFF) shl 16) or (Flags and $0000FFFF));
end;
function PdhParseInstanceNameA; external PdhLib name 'PdhParseInstanceNameA';
function PdhParseInstanceNameW; external PdhLib name 'PdhParseInstanceNameW';
{$IFDEF UNICODE}
function PdhParseInstanceName; external PdhLib name 'PdhParseInstanceNameW';
{$ELSE}
function PdhParseInstanceName; external PdhLib name 'PdhParseInstanceNameA';
{$ENDIF}
function PdhValidatePathA; external PdhLib name 'PdhValidatePathA';
function PdhValidatePathW; external PdhLib name 'PdhValidatePathW';
{$IFDEF UNICODE}
function PdhValidatePath; external PdhLib name 'PdhValidatePathW';
{$ELSE}
function PdhValidatePath; external PdhLib name 'PdhValidatePathA';
{$ENDIF}
function PdhGetDefaultPerfObjectA; external PdhLib name 'PdhGetDefaultPerfObjectA';
function PdhGetDefaultPerfObjectW; external PdhLib name 'PdhGetDefaultPerfObjectW';
{$IFDEF UNICODE}
function PdhGetDefaultPerfObject; external PdhLib name 'PdhGetDefaultPerfObjectW';
{$ELSE}
function PdhGetDefaultPerfObject; external PdhLib name 'PdhGetDefaultPerfObjectA';
{$ENDIF}
function PdhGetDefaultPerfCounterA; external PdhLib name 'PdhGetDefaultPerfCounterA';
function PdhGetDefaultPerfCounterW; external PdhLib name 'PdhGetDefaultPerfCounterW';
{$IFDEF UNICODE}
function PdhGetDefaultPerfCounter; external PdhLib name 'PdhGetDefaultPerfCounterW';
{$ELSE}
function PdhGetDefaultPerfCounter; external PdhLib name 'PdhGetDefaultPerfCounterA';
{$ENDIF}
function PdhBrowseCountersA; external PdhLib name 'PdhBrowseCountersA';
function PdhBrowseCountersW; external PdhLib name 'PdhBrowseCountersW';
{$IFDEF UNICODE}
function PdhBrowseCounters; external PdhLib name 'PdhBrowseCountersW';
{$ELSE}
function PdhBrowseCounters; external PdhLib name 'PdhBrowseCountersA';
{$ENDIF}
function PdhExpandCounterPathA; external PdhLib name 'PdhExpandCounterPathA';
function PdhExpandCounterPathW; external PdhLib name 'PdhExpandCounterPathW';
{$IFDEF UNICODE}
function PdhExpandCounterPath; external PdhLib name 'PdhExpandCounterPathW';
{$ELSE}
function PdhExpandCounterPath; external PdhLib name 'PdhExpandCounterPathA';
{$ENDIF}
function PdhLookupPerfNameByIndexA; external PdhLib name 'PdhLookupPerfNameByIndexA';
function PdhLookupPerfNameByIndexW; external PdhLib name 'PdhLookupPerfNameByIndexW';
{$IFDEF UNICODE}
function PdhLookupPerfNameByIndex; external PdhLib name 'PdhLookupPerfNameByIndexW';
{$ELSE}
function PdhLookupPerfNameByIndex; external PdhLib name 'PdhLookupPerfNameByIndexA';
{$ENDIF}
function PdhLookupPerfIndexByNameA; external PdhLib name 'PdhLookupPerfIndexByNameA';
function PdhLookupPerfIndexByNameW; external PdhLib name 'PdhLookupPerfIndexByNameW';
{$IFDEF UNICODE}
function PdhLookupPerfIndexByName; external PdhLib name 'PdhLookupPerfIndexByNameW';
{$ELSE}
function PdhLookupPerfIndexByName; external PdhLib name 'PdhLookupPerfIndexByNameA';
{$ENDIF}
function PdhExpandWildCardPathA; external PdhLib name 'PdhExpandWildCardPathA';
function PdhExpandWildCardPathW; external PdhLib name 'PdhExpandWildCardPathW';
{$IFDEF UNICODE}
function PdhExpandWildCardPath; external PdhLib name 'PdhExpandWildCardPathW';
{$ELSE}
function PdhExpandWildCardPath; external PdhLib name 'PdhExpandWildCardPathA';
{$ENDIF}
function PdhOpenLogA; external PdhLib name 'PdhOpenLogA';
function PdhOpenLogW; external PdhLib name 'PdhOpenLogW';
{$IFDEF UNICODE}
function PdhOpenLog; external PdhLib name 'PdhOpenLogW';
{$ELSE}
function PdhOpenLog; external PdhLib name 'PdhOpenLogA';
{$ENDIF}
function PdhUpdateLogA; external PdhLib name 'PdhUpdateLogA';
function PdhUpdateLogW; external PdhLib name 'PdhUpdateLogW';
{$IFDEF UNICODE}
function PdhUpdateLog; external PdhLib name 'PdhUpdateLogW';
{$ELSE}
function PdhUpdateLog; external PdhLib name 'PdhUpdateLogA';
{$ENDIF}
function PdhUpdateLogFileCatalog; external PdhLib name 'PdhUpdateLogFileCatalog';
function PdhGetLogFileSize; external PdhLib name 'PdhGetLogFileSize';
function PdhCloseLog; external PdhLib name 'PdhCloseLog';
function PdhSelectDataSourceA; external PdhLib name 'PdhSelectDataSourceA';
function PdhSelectDataSourceW; external PdhLib name 'PdhSelectDataSourceW';
{$IFDEF UNICODE}
function PdhSelectDataSource; external PdhLib name 'PdhSelectDataSourceW';
{$ELSE}
function PdhSelectDataSource; external PdhLib name 'PdhSelectDataSourceA';
{$ENDIF}
function PdhIsRealTimeQuery; external PdhLib name 'PdhIsRealTimeQuery';
function PdhSetQueryTimeRange; external PdhLib name 'PdhSetQueryTimeRange';
function PdhGetDataSourceTimeRangeA; external PdhLib name 'PdhGetDataSourceTimeRangeA';
function PdhGetDataSourceTimeRangeW; external PdhLib name 'PdhGetDataSourceTimeRangeW';
{$IFDEF UNICODE}
function PdhGetDataSourceTimeRange; external PdhLib name 'PdhGetDataSourceTimeRangeW';
{$ELSE}
function PdhGetDataSourceTimeRange; external PdhLib name 'PdhGetDataSourceTimeRangeA';
{$ENDIF}
function PdhCollectQueryDataEx; external PdhLib name 'PdhCollectQueryDataEx';
function PdhFormatFromRawValue; external PdhLib name 'PdhFormatFromRawValue';
function PdhGetCounterTimeBase; external PdhLib name 'PdhGetCounterTimeBase';
function PdhReadRawLogRecord; external PdhLib name 'PdhReadRawLogRecord';
function PdhSetDefaultRealTimeDataSource; external PdhLib name 'PdhSetDefaultRealTimeDataSource';
function PdhLogServiceCommandA; external PdhLib name 'PdhLogServiceCommandA';
function PdhLogServiceCommandW; external PdhLib name 'PdhLogServiceCommandW';
{$IFDEF UNICODE}
function PdhLogServiceCommand; external PdhLib name 'PdhLogServiceCommandW';
{$ELSE}
function PdhLogServiceCommand; external PdhLib name 'PdhLogServiceCommandA';
{$ENDIF}
function PdhLogServiceControlA; external PdhLib name 'PdhLogServiceControlA';
function PdhLogServiceControlW; external PdhLib name 'PdhLogServiceControlW';
{$IFDEF UNICODE}
function PdhLogServiceControl; external PdhLib name 'PdhLogServiceControlW';
{$ELSE}
function PdhLogServiceControl; external PdhLib name 'PdhLogServiceControlA';
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -