⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwapdh.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{$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 + -