📄 jwapdh.pas
字号:
{$ELSE}
function PdhGetDefaultPerfObjectH(hDataSource: PDH_HLOG; szMachineName: LPCSTR; szDefaultObjectName: LPSTR;
pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfObjectH}
{$ENDIF}
function PdhGetDefaultPerfCounterHW(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCWSTR;
szDefaultCounterName: LPWSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterHW}
function PdhGetDefaultPerfCounterHA(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCSTR;
szDefaultCounterName: LPSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterHA}
{$IFDEF UNICODE}
function PdhGetDefaultPerfCounterH(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCWSTR;
szDefaultCounterName: LPWSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterH}
{$ELSE}
function PdhGetDefaultPerfCounterH(hDataSource: PDH_HLOG; szMachineName, szObjectName: LPCSTR;
szDefaultCounterName: LPSTR; pcchBufferSize: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetDefaultPerfCounterH}
{$ENDIF}
function PdhBrowseCountersHW(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HW): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhBrowseCountersHW}
function PdhBrowseCountersHA(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HA): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhBrowseCountersHA}
{$IFDEF UNICODE}
function PdhBrowseCountersH(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HW): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhBrowseCountersH}
{$ELSE}
function PdhBrowseCountersH(const pBrowseDlgData: PDH_BROWSE_DLG_CONFIG_HA): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhBrowseCountersH}
{$ENDIF}
//Check that a DSN points to a database that contains the correct Perfmon tables.
function PdhVerifySQLDBW(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhVerifySQLDBW}
function PdhVerifySQLDBA(szDataSource: LPCSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhVerifySQLDBA}
{$IFDEF UNICODE}
function PdhVerifySQLDB(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhVerifySQLDB}
{$ELSE}
function PdhVerifySQLDB(szDataSource: LPCSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhVerifySQLDB}
{$ENDIF}
//Create the correct perfmon tables in the database pointed to by a DSN.
function PdhCreateSQLTablesW(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhCreateSQLTablesW}
function PdhCreateSQLTablesA(szDataSource: LPCSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhCreateSQLTablesA}
{$IFDEF UNICODE}
function PdhCreateSQLTables(szDataSource: LPCWSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhCreateSQLTables}
{$ELSE}
function PdhCreateSQLTables(szDataSource: LPCSTR): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhCreateSQLTables}
{$ENDIF}
//Return the list of Log set names in the database pointed to by the DSN.
function PdhEnumLogSetNamesW(szDataSource: LPCWSTR; mszDataSetNameList: LPWSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhEnumLogSetNamesW}
function PdhEnumLogSetNamesA(szDataSource: LPCSTR; mszDataSetNameList: LPSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhEnumLogSetNamesA}
{$IFDEF UNICODE}
function PdhEnumLogSetNames(szDataSource: LPCWSTR; mszDataSetNameList: LPWSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhEnumLogSetNames}
{$ELSE}
function PdhEnumLogSetNames(szDataSource: LPCSTR; mszDataSetNameList: LPSTR; pcchBufferLength: LPDWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhEnumLogSetNames}
{$ENDIF}
//Retrieve the GUID for an open Log Set
function PdhGetLogSetGUID(hLog: PDH_HLOG; pGuid: LPGUID; pRunId: LPINT): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhGetLogSetGUID}
//Set the RunID for an open Log Set
function PdhSetLogSetRunID(hLog: PDH_HLOG; RunId: Integer): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhSetLogSetRunID}
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;
{$IFDEF DYNAMIC_LINK}
var
_PdhGetDllVersion: Pointer;
function PdhGetDllVersion;
begin
GetProcedureAddress(_PdhGetDllVersion, PdhLib, 'PdhGetDllVersion');
asm
mov esp, ebp
pop ebp
jmp [_PdhGetDllVersion]
end;
end;
{$ELSE}
function PdhGetDllVersion; external PdhLib name 'PdhGetDllVersion';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhOpenQueryA: Pointer;
function PdhOpenQueryA;
begin
GetProcedureAddress(_PdhOpenQueryA, PdhLib, 'PdhOpenQueryA');
asm
mov esp, ebp
pop ebp
jmp [_PdhOpenQueryA]
end;
end;
{$ELSE}
function PdhOpenQueryA; external PdhLib name 'PdhOpenQueryA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhOpenQueryW: Pointer;
function PdhOpenQueryW;
begin
GetProcedureAddress(_PdhOpenQueryW, PdhLib, 'PdhOpenQueryW');
asm
mov esp, ebp
pop ebp
jmp [_PdhOpenQueryW]
end;
end;
{$ELSE}
function PdhOpenQueryW; external PdhLib name 'PdhOpenQueryW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_PdhOpenQuery: Pointer;
function PdhOpenQuery;
begin
GetProcedureAddress(_PdhOpenQuery, PdhLib, 'PdhOpenQueryW');
asm
mov esp, ebp
pop ebp
jmp [_PdhOpenQuery]
end;
end;
{$ELSE}
function PdhOpenQuery; external PdhLib name 'PdhOpenQueryW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_PdhOpenQuery: Pointer;
function PdhOpenQuery;
begin
GetProcedureAddress(_PdhOpenQuery, PdhLib, 'PdhOpenQueryA');
asm
mov esp, ebp
pop ebp
jmp [_PdhOpenQuery]
end;
end;
{$ELSE}
function PdhOpenQuery; external PdhLib name 'PdhOpenQueryA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_PdhAddCounterA: Pointer;
function PdhAddCounterA;
begin
GetProcedureAddress(_PdhAddCounterA, PdhLib, 'PdhAddCounterA');
asm
mov esp, ebp
pop ebp
jmp [_PdhAddCounterA]
end;
end;
{$ELSE}
function PdhAddCounterA; external PdhLib name 'PdhAddCounterA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhAddCounterW: Pointer;
function PdhAddCounterW;
begin
GetProcedureAddress(_PdhAddCounterW, PdhLib, 'PdhAddCounterW');
asm
mov esp, ebp
pop ebp
jmp [_PdhAddCounterW]
end;
end;
{$ELSE}
function PdhAddCounterW; external PdhLib name 'PdhAddCounterW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_PdhAddCounter: Pointer;
function PdhAddCounter;
begin
GetProcedureAddress(_PdhAddCounter, PdhLib, 'PdhAddCounterW');
asm
mov esp, ebp
pop ebp
jmp [_PdhAddCounter]
end;
end;
{$ELSE}
function PdhAddCounter; external PdhLib name 'PdhAddCounterW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_PdhAddCounter: Pointer;
function PdhAddCounter;
begin
GetProcedureAddress(_PdhAddCounter, PdhLib, 'PdhAddCounterA');
asm
mov esp, ebp
pop ebp
jmp [_PdhAddCounter]
end;
end;
{$ELSE}
function PdhAddCounter; external PdhLib name 'PdhAddCounterA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_PdhRemoveCounter: Pointer;
function PdhRemoveCounter;
begin
GetProcedureAddress(_PdhRemoveCounter, PdhLib, 'PdhRemoveCounter');
asm
mov esp, ebp
pop ebp
jmp [_PdhRemoveCounter]
end;
end;
{$ELSE}
function PdhRemoveCounter; external PdhLib name 'PdhRemoveCounter';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhCollectQueryData: Pointer;
function PdhCollectQueryData;
begin
GetProcedureAddress(_PdhCollectQueryData, PdhLib, 'PdhCollectQueryData');
asm
mov esp, ebp
pop ebp
jmp [_PdhCollectQueryData]
end;
end;
{$ELSE}
function PdhCollectQueryData; external PdhLib name 'PdhCollectQueryData';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhCloseQuery: Pointer;
function PdhCloseQuery;
begin
GetProcedureAddress(_PdhCloseQuery, PdhLib, 'PdhCloseQuery');
asm
mov esp, ebp
pop ebp
jmp [_PdhCloseQuery]
end;
end;
{$ELSE}
function PdhCloseQuery; external PdhLib name 'PdhCloseQuery';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhGetFormattedCounterValue: Pointer;
function PdhGetFormattedCounterValue;
begin
GetProcedureAddress(_PdhGetFormattedCounterValue, PdhLib, 'PdhGetFormattedCounterValue');
asm
mov esp, ebp
pop ebp
jmp [_PdhGetFormattedCounterValue]
end;
end;
{$ELSE}
function PdhGetFormattedCounterValue; external PdhLib name 'PdhGetFormattedCounterValue';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_PdhGetFormattedCounterArrayA: Pointer;
function PdhGetFormattedCounterArrayA;
begin
GetProcedureAddress(_PdhGetFormattedCounterArrayA, PdhLib, 'PdhGetFormattedCounterArrayA');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -