| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _PDH_H_ |
| #define _PDH_H_ |
| |
| #include <windows.h> |
| #include <winperf.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef LONG PDH_STATUS; |
| |
| #define PDH_FUNCTION PDH_STATUS WINAPI |
| |
| #define PDH_CVERSION_WIN40 ((DWORD)(0x0400)) |
| #define PDH_CVERSION_WIN50 ((DWORD)(0x0500)) |
| |
| #define PDH_VERSION ((DWORD)((PDH_CVERSION_WIN50) + 0x0003)) |
| |
| #define IsSuccessSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x00000000L) ? TRUE : FALSE) |
| #define IsInformationalSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x40000000L) ? TRUE : FALSE) |
| #define IsWarningSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0x80000000L) ? TRUE : FALSE) |
| #define IsErrorSeverity(ErrorCode) ((((DWORD)(ErrorCode) & (0xC0000000L))==0xC0000000L) ? TRUE : FALSE) |
| |
| #define MAX_COUNTER_PATH 256 |
| |
| #define PDH_MAX_COUNTER_NAME 1024 |
| #define PDH_MAX_INSTANCE_NAME 1024 |
| #define PDH_MAX_COUNTER_PATH 2048 |
| #define PDH_MAX_DATASOURCE_PATH 1024 |
| |
| typedef HANDLE PDH_HCOUNTER; |
| typedef HANDLE PDH_HQUERY; |
| typedef HANDLE PDH_HLOG; |
| |
| typedef PDH_HCOUNTER HCOUNTER; |
| typedef PDH_HQUERY HQUERY; |
| #ifndef _LMHLOGDEFINED_ |
| typedef PDH_HLOG HLOG; |
| #endif |
| |
| #ifdef INVALID_HANDLE_VALUE |
| #undef INVALID_HANDLE_VALUE |
| #define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1)) |
| #endif |
| |
| #define H_REALTIME_DATASOURCE NULL |
| #define H_WBEM_DATASOURCE INVALID_HANDLE_VALUE |
| |
| typedef struct _PDH_RAW_COUNTER { |
| DWORD CStatus; |
| FILETIME TimeStamp; |
| LONGLONG FirstValue; |
| LONGLONG SecondValue; |
| DWORD MultiCount; |
| } PDH_RAW_COUNTER,*PPDH_RAW_COUNTER; |
| |
| typedef struct _PDH_RAW_COUNTER_ITEM_A { |
| LPSTR szName; |
| PDH_RAW_COUNTER RawValue; |
| } PDH_RAW_COUNTER_ITEM_A,*PPDH_RAW_COUNTER_ITEM_A; |
| |
| typedef struct _PDH_RAW_COUNTER_ITEM_W { |
| LPWSTR szName; |
| PDH_RAW_COUNTER RawValue; |
| } PDH_RAW_COUNTER_ITEM_W,*PPDH_RAW_COUNTER_ITEM_W; |
| |
| typedef struct _PDH_FMT_COUNTERVALUE { |
| DWORD CStatus; |
| __MINGW_EXTENSION union { |
| LONG longValue; |
| double doubleValue; |
| LONGLONG largeValue; |
| LPCSTR AnsiStringValue; |
| LPCWSTR WideStringValue; |
| }; |
| } PDH_FMT_COUNTERVALUE,*PPDH_FMT_COUNTERVALUE; |
| |
| typedef struct _PDH_FMT_COUNTERVALUE_ITEM_A { |
| LPSTR szName; |
| PDH_FMT_COUNTERVALUE FmtValue; |
| } PDH_FMT_COUNTERVALUE_ITEM_A,*PPDH_FMT_COUNTERVALUE_ITEM_A; |
| |
| typedef struct _PDH_FMT_COUNTERVALUE_ITEM_W { |
| LPWSTR szName; |
| PDH_FMT_COUNTERVALUE FmtValue; |
| } PDH_FMT_COUNTERVALUE_ITEM_W,*PPDH_FMT_COUNTERVALUE_ITEM_W; |
| |
| typedef struct _PDH_STATISTICS { |
| DWORD dwFormat; |
| DWORD count; |
| PDH_FMT_COUNTERVALUE min; |
| PDH_FMT_COUNTERVALUE max; |
| PDH_FMT_COUNTERVALUE mean; |
| } PDH_STATISTICS,*PPDH_STATISTICS; |
| |
| typedef struct _PDH_COUNTER_PATH_ELEMENTS_A { |
| LPSTR szMachineName; |
| LPSTR szObjectName; |
| LPSTR szInstanceName; |
| LPSTR szParentInstance; |
| DWORD dwInstanceIndex; |
| LPSTR szCounterName; |
| } PDH_COUNTER_PATH_ELEMENTS_A,*PPDH_COUNTER_PATH_ELEMENTS_A; |
| |
| typedef struct _PDH_COUNTER_PATH_ELEMENTS_W { |
| LPWSTR szMachineName; |
| LPWSTR szObjectName; |
| LPWSTR szInstanceName; |
| LPWSTR szParentInstance; |
| DWORD dwInstanceIndex; |
| LPWSTR szCounterName; |
| } PDH_COUNTER_PATH_ELEMENTS_W,*PPDH_COUNTER_PATH_ELEMENTS_W; |
| |
| typedef struct _PDH_DATA_ITEM_PATH_ELEMENTS_A { |
| LPSTR szMachineName; |
| GUID ObjectGUID; |
| DWORD dwItemId; |
| LPSTR szInstanceName; |
| } PDH_DATA_ITEM_PATH_ELEMENTS_A,*PPDH_DATA_ITEM_PATH_ELEMENTS_A; |
| |
| typedef struct _PDH_DATA_ITEM_PATH_ELEMENTS_W { |
| LPWSTR szMachineName; |
| GUID ObjectGUID; |
| DWORD dwItemId; |
| LPWSTR szInstanceName; |
| } PDH_DATA_ITEM_PATH_ELEMENTS_W,*PPDH_DATA_ITEM_PATH_ELEMENTS_W; |
| |
| typedef struct _PDH_COUNTER_INFO_A { |
| DWORD dwLength; |
| DWORD dwType; |
| DWORD CVersion; |
| DWORD CStatus; |
| LONG lScale; |
| LONG lDefaultScale; |
| DWORD_PTR dwUserData; |
| DWORD_PTR dwQueryUserData; |
| LPSTR szFullPath; |
| __MINGW_EXTENSION union { |
| PDH_DATA_ITEM_PATH_ELEMENTS_A DataItemPath; |
| PDH_COUNTER_PATH_ELEMENTS_A CounterPath; |
| __MINGW_EXTENSION struct { |
| LPSTR szMachineName; |
| LPSTR szObjectName; |
| LPSTR szInstanceName; |
| LPSTR szParentInstance; |
| DWORD dwInstanceIndex; |
| LPSTR szCounterName; |
| }; |
| }; |
| LPSTR szExplainText; |
| DWORD DataBuffer[1]; |
| } PDH_COUNTER_INFO_A,*PPDH_COUNTER_INFO_A; |
| |
| typedef struct _PDH_COUNTER_INFO_W { |
| DWORD dwLength; |
| DWORD dwType; |
| DWORD CVersion; |
| DWORD CStatus; |
| LONG lScale; |
| LONG lDefaultScale; |
| DWORD_PTR dwUserData; |
| DWORD_PTR dwQueryUserData; |
| LPWSTR szFullPath; |
| __MINGW_EXTENSION union { |
| PDH_DATA_ITEM_PATH_ELEMENTS_W DataItemPath; |
| PDH_COUNTER_PATH_ELEMENTS_W CounterPath; |
| __MINGW_EXTENSION struct { |
| LPWSTR szMachineName; |
| LPWSTR szObjectName; |
| LPWSTR szInstanceName; |
| LPWSTR szParentInstance; |
| DWORD dwInstanceIndex; |
| LPWSTR szCounterName; |
| }; |
| }; |
| LPWSTR szExplainText; |
| DWORD DataBuffer[1]; |
| } PDH_COUNTER_INFO_W,*PPDH_COUNTER_INFO_W; |
| |
| typedef struct _PDH_TIME_INFO { |
| LONGLONG StartTime; |
| LONGLONG EndTime; |
| DWORD SampleCount; |
| } PDH_TIME_INFO,*PPDH_TIME_INFO; |
| |
| typedef struct _PDH_RAW_LOG_RECORD { |
| DWORD dwStructureSize; |
| DWORD dwRecordType; |
| DWORD dwItems; |
| UCHAR RawBytes[1]; |
| } PDH_RAW_LOG_RECORD,*PPDH_RAW_LOG_RECORD; |
| |
| typedef struct _PDH_LOG_SERVICE_QUERY_INFO_A { |
| DWORD dwSize; |
| DWORD dwFlags; |
| DWORD dwLogQuota; |
| LPSTR szLogFileCaption; |
| LPSTR szDefaultDir; |
| LPSTR szBaseFileName; |
| DWORD dwFileType; |
| DWORD dwReserved; |
| __MINGW_EXTENSION union { |
| __MINGW_EXTENSION struct { |
| DWORD PdlAutoNameInterval; |
| DWORD PdlAutoNameUnits; |
| LPSTR PdlCommandFilename; |
| LPSTR PdlCounterList; |
| DWORD PdlAutoNameFormat; |
| DWORD PdlSampleInterval; |
| FILETIME PdlLogStartTime; |
| FILETIME PdlLogEndTime; |
| }; |
| __MINGW_EXTENSION struct { |
| DWORD TlNumberOfBuffers; |
| DWORD TlMinimumBuffers; |
| DWORD TlMaximumBuffers; |
| DWORD TlFreeBuffers; |
| DWORD TlBufferSize; |
| DWORD TlEventsLost; |
| DWORD TlLoggerThreadId; |
| DWORD TlBuffersWritten; |
| DWORD TlLogHandle; |
| LPSTR TlLogFileName; |
| }; |
| }; |
| } PDH_LOG_SERVICE_QUERY_INFO_A,*PPDH_LOG_SERVICE_QUERY_INFO_A; |
| |
| typedef struct _PDH_LOG_SERVICE_QUERY_INFO_W { |
| DWORD dwSize; |
| DWORD dwFlags; |
| DWORD dwLogQuota; |
| LPWSTR szLogFileCaption; |
| LPWSTR szDefaultDir; |
| LPWSTR szBaseFileName; |
| DWORD dwFileType; |
| DWORD dwReserved; |
| __MINGW_EXTENSION union { |
| __MINGW_EXTENSION struct { |
| DWORD PdlAutoNameInterval; |
| DWORD PdlAutoNameUnits; |
| LPWSTR PdlCommandFilename; |
| LPWSTR PdlCounterList; |
| DWORD PdlAutoNameFormat; |
| DWORD PdlSampleInterval; |
| FILETIME PdlLogStartTime; |
| FILETIME PdlLogEndTime; |
| }; |
| __MINGW_EXTENSION struct { |
| DWORD TlNumberOfBuffers; |
| DWORD TlMinimumBuffers; |
| DWORD TlMaximumBuffers; |
| DWORD TlFreeBuffers; |
| DWORD TlBufferSize; |
| DWORD TlEventsLost; |
| DWORD TlLoggerThreadId; |
| DWORD TlBuffersWritten; |
| DWORD TlLogHandle; |
| LPWSTR TlLogFileName; |
| }; |
| }; |
| } PDH_LOG_SERVICE_QUERY_INFO_W,*PPDH_LOG_SERVICE_QUERY_INFO_W; |
| |
| #define MAX_TIME_VALUE ((LONGLONG) 0x7FFFFFFFFFFFFFFF) |
| #define MIN_TIME_VALUE ((LONGLONG) 0) |
| |
| PDH_FUNCTION PdhGetDllVersion(LPDWORD lpdwVersion); |
| PDH_FUNCTION PdhOpenQueryW(LPCWSTR szDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery); |
| PDH_FUNCTION PdhOpenQueryA(LPCSTR szDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery); |
| PDH_FUNCTION PdhAddCounterW(PDH_HQUERY hQuery,LPCWSTR szFullCounterPath,DWORD_PTR dwUserData,PDH_HCOUNTER *phCounter); |
| PDH_FUNCTION PdhAddCounterA(PDH_HQUERY hQuery,LPCSTR szFullCounterPath,DWORD_PTR dwUserData,PDH_HCOUNTER *phCounter); |
| PDH_FUNCTION PdhRemoveCounter(PDH_HCOUNTER hCounter); |
| PDH_FUNCTION PdhCollectQueryData(PDH_HQUERY hQuery); |
| PDH_FUNCTION PdhCloseQuery(PDH_HQUERY hQuery); |
| PDH_FUNCTION PdhGetFormattedCounterValue(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwType,PPDH_FMT_COUNTERVALUE pValue); |
| PDH_FUNCTION PdhGetFormattedCounterArrayA(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_FMT_COUNTERVALUE_ITEM_A ItemBuffer); |
| PDH_FUNCTION PdhGetFormattedCounterArrayW(PDH_HCOUNTER hCounter,DWORD dwFormat,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_FMT_COUNTERVALUE_ITEM_W ItemBuffer); |
| |
| #define PDH_FMT_RAW ((DWORD) 0x00000010) |
| #define PDH_FMT_ANSI ((DWORD) 0x00000020) |
| #define PDH_FMT_UNICODE ((DWORD) 0x00000040) |
| #define PDH_FMT_LONG ((DWORD) 0x00000100) |
| #define PDH_FMT_DOUBLE ((DWORD) 0x00000200) |
| #define PDH_FMT_LARGE ((DWORD) 0x00000400) |
| #define PDH_FMT_NOSCALE ((DWORD) 0x00001000) |
| #define PDH_FMT_1000 ((DWORD) 0x00002000) |
| #define PDH_FMT_NODATA ((DWORD) 0x00004000) |
| #define PDH_FMT_NOCAP100 ((DWORD) 0x00008000) |
| #define PERF_DETAIL_COSTLY ((DWORD) 0x00010000) |
| #define PERF_DETAIL_STANDARD ((DWORD) 0x0000FFFF) |
| |
| PDH_FUNCTION PdhGetRawCounterValue(PDH_HCOUNTER hCounter,LPDWORD lpdwType,PPDH_RAW_COUNTER pValue); |
| PDH_FUNCTION PdhGetRawCounterArrayA(PDH_HCOUNTER hCounter,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_RAW_COUNTER_ITEM_A ItemBuffer); |
| PDH_FUNCTION PdhGetRawCounterArrayW(PDH_HCOUNTER hCounter,LPDWORD lpdwBufferSize,LPDWORD lpdwItemCount,PPDH_RAW_COUNTER_ITEM_W ItemBuffer); |
| PDH_FUNCTION PdhCalculateCounterFromRawValue(PDH_HCOUNTER hCounter,DWORD dwFormat,PPDH_RAW_COUNTER rawValue1,PPDH_RAW_COUNTER rawValue2,PPDH_FMT_COUNTERVALUE fmtValue); |
| PDH_FUNCTION PdhComputeCounterStatistics(PDH_HCOUNTER hCounter,DWORD dwFormat,DWORD dwFirstEntry,DWORD dwNumEntries,PPDH_RAW_COUNTER lpRawValueArray,PPDH_STATISTICS data); |
| PDH_FUNCTION PdhGetCounterInfoW(PDH_HCOUNTER hCounter,BOOLEAN bRetrieveExplainText,LPDWORD pdwBufferSize,PPDH_COUNTER_INFO_W lpBuffer); |
| PDH_FUNCTION PdhGetCounterInfoA(PDH_HCOUNTER hCounter,BOOLEAN bRetrieveExplainText,LPDWORD pdwBufferSize,PPDH_COUNTER_INFO_A lpBuffer); |
| |
| #define PDH_MAX_SCALE (7L) |
| #define PDH_MIN_SCALE (-7L) |
| |
| PDH_FUNCTION PdhSetCounterScaleFactor(PDH_HCOUNTER hCounter,LONG lFactor); |
| PDH_FUNCTION PdhConnectMachineW(LPCWSTR szMachineName); |
| PDH_FUNCTION PdhConnectMachineA(LPCSTR szMachineName); |
| PDH_FUNCTION PdhEnumMachinesW(LPCWSTR szDataSource,LPWSTR mszMachineList,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhEnumMachinesA(LPCSTR szDataSource,LPSTR mszMachineList,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhEnumObjectsW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPWSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh); |
| PDH_FUNCTION PdhEnumObjectsA(LPCSTR szDataSource,LPCSTR szMachineName,LPSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh); |
| PDH_FUNCTION PdhEnumObjectItemsW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR mszCounterList,LPDWORD pcchCounterListLength,LPWSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags); |
| PDH_FUNCTION PdhEnumObjectItemsA(LPCSTR szDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR mszCounterList,LPDWORD pcchCounterListLength,LPSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags); |
| |
| #define PDH_OBJECT_HAS_INSTANCES ((DWORD) 0x00000001) |
| |
| PDH_FUNCTION PdhMakeCounterPathW(PPDH_COUNTER_PATH_ELEMENTS_W pCounterPathElements,LPWSTR szFullPathBuffer,LPDWORD pcchBufferSize,DWORD dwFlags); |
| PDH_FUNCTION PdhMakeCounterPathA(PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,LPSTR szFullPathBuffer,LPDWORD pcchBufferSize,DWORD dwFlags); |
| PDH_FUNCTION PdhParseCounterPathW(LPCWSTR szFullPathBuffer,PPDH_COUNTER_PATH_ELEMENTS_W pCounterPathElements,LPDWORD pdwBufferSize,DWORD dwFlags); |
| PDH_FUNCTION PdhParseCounterPathA(LPCSTR szFullPathBuffer,PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,LPDWORD pdwBufferSize,DWORD dwFlags); |
| |
| #define PDH_PATH_WBEM_RESULT ((DWORD) 0x00000001) |
| #define PDH_PATH_WBEM_INPUT ((DWORD) 0x00000002) |
| |
| #define PDH_PATH_LANG_FLAGS(LangId,Flags) ((DWORD)(((LangId & 0x0000FFFF) << 16) | (Flags & 0x0000FFFF))) |
| |
| PDH_FUNCTION PdhParseInstanceNameW(LPCWSTR szInstanceString,LPWSTR szInstanceName,LPDWORD pcchInstanceNameLength,LPWSTR szParentName,LPDWORD pcchParentNameLength,LPDWORD lpIndex); |
| PDH_FUNCTION PdhParseInstanceNameA(LPCSTR szInstanceString,LPSTR szInstanceName,LPDWORD pcchInstanceNameLength,LPSTR szParentName,LPDWORD pcchParentNameLength,LPDWORD lpIndex); |
| PDH_FUNCTION PdhValidatePathW(LPCWSTR szFullPathBuffer); |
| PDH_FUNCTION PdhValidatePathA(LPCSTR szFullPathBuffer); |
| PDH_FUNCTION PdhGetDefaultPerfObjectW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPWSTR szDefaultObjectName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfObjectA(LPCSTR szDataSource,LPCSTR szMachineName,LPSTR szDefaultObjectName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfCounterW(LPCWSTR szDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR szDefaultCounterName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfCounterA(LPCSTR szDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR szDefaultCounterName,LPDWORD pcchBufferSize); |
| |
| typedef PDH_STATUS (WINAPI *CounterPathCallBack)(DWORD_PTR); |
| |
| typedef struct _BrowseDlgConfig_HW { |
| DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved : 22; |
| HWND hWndOwner; |
| PDH_HLOG hDataSource; |
| LPWSTR szReturnPathBuffer; |
| DWORD cchReturnPathLength; |
| CounterPathCallBack pCallBack; |
| DWORD_PTR dwCallBackArg; |
| PDH_STATUS CallBackStatus; |
| DWORD dwDefaultDetailLevel; |
| LPWSTR szDialogBoxCaption; |
| } PDH_BROWSE_DLG_CONFIG_HW,*PPDH_BROWSE_DLG_CONFIG_HW; |
| |
| typedef struct _BrowseDlgConfig_HA { |
| DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22; |
| HWND hWndOwner; |
| PDH_HLOG hDataSource; |
| LPSTR szReturnPathBuffer; |
| DWORD cchReturnPathLength; |
| CounterPathCallBack pCallBack; |
| DWORD_PTR dwCallBackArg; |
| PDH_STATUS CallBackStatus; |
| DWORD dwDefaultDetailLevel; |
| LPSTR szDialogBoxCaption; |
| } PDH_BROWSE_DLG_CONFIG_HA,*PPDH_BROWSE_DLG_CONFIG_HA; |
| |
| typedef struct _BrowseDlgConfig_W { |
| DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22; |
| HWND hWndOwner; |
| LPWSTR szDataSource; |
| LPWSTR szReturnPathBuffer; |
| DWORD cchReturnPathLength; |
| CounterPathCallBack pCallBack; |
| DWORD_PTR dwCallBackArg; |
| PDH_STATUS CallBackStatus; |
| DWORD dwDefaultDetailLevel; |
| LPWSTR szDialogBoxCaption; |
| } PDH_BROWSE_DLG_CONFIG_W,*PPDH_BROWSE_DLG_CONFIG_W; |
| |
| typedef struct _BrowseDlgConfig_A { |
| DWORD bIncludeInstanceIndex : 1,bSingleCounterPerAdd : 1,bSingleCounterPerDialog : 1,bLocalCountersOnly : 1,bWildCardInstances : 1,bHideDetailBox : 1,bInitializePath : 1,bDisableMachineSelection : 1,bIncludeCostlyObjects : 1,bShowObjectBrowser : 1,bReserved:22; |
| HWND hWndOwner; |
| LPSTR szDataSource; |
| LPSTR szReturnPathBuffer; |
| DWORD cchReturnPathLength; |
| CounterPathCallBack pCallBack; |
| DWORD_PTR dwCallBackArg; |
| PDH_STATUS CallBackStatus; |
| DWORD dwDefaultDetailLevel; |
| LPSTR szDialogBoxCaption; |
| } PDH_BROWSE_DLG_CONFIG_A,*PPDH_BROWSE_DLG_CONFIG_A; |
| |
| PDH_FUNCTION PdhBrowseCountersW(PPDH_BROWSE_DLG_CONFIG_W pBrowseDlgData); |
| PDH_FUNCTION PdhBrowseCountersA(PPDH_BROWSE_DLG_CONFIG_A pBrowseDlgData); |
| PDH_FUNCTION PdhExpandCounterPathW(LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength); |
| PDH_FUNCTION PdhExpandCounterPathA(LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength); |
| PDH_FUNCTION PdhLookupPerfNameByIndexW(LPCWSTR szMachineName,DWORD dwNameIndex,LPWSTR szNameBuffer,LPDWORD pcchNameBufferSize); |
| PDH_FUNCTION PdhLookupPerfNameByIndexA(LPCSTR szMachineName,DWORD dwNameIndex,LPSTR szNameBuffer,LPDWORD pcchNameBufferSize); |
| PDH_FUNCTION PdhLookupPerfIndexByNameW(LPCWSTR szMachineName,LPCWSTR szNameBuffer,LPDWORD pdwIndex); |
| PDH_FUNCTION PdhLookupPerfIndexByNameA(LPCSTR szMachineName,LPCSTR szNameBuffer,LPDWORD pdwIndex); |
| |
| #define PDH_NOEXPANDCOUNTERS 1 |
| #define PDH_NOEXPANDINSTANCES 2 |
| #define PDH_REFRESHCOUNTERS 4 |
| |
| PDH_FUNCTION PdhExpandWildCardPathA(LPCSTR szDataSource,LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags); |
| PDH_FUNCTION PdhExpandWildCardPathW(LPCWSTR szDataSource,LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags); |
| |
| #define PDH_LOG_READ_ACCESS ((DWORD) 0x00010000) |
| #define PDH_LOG_WRITE_ACCESS ((DWORD) 0x00020000) |
| #define PDH_LOG_UPDATE_ACCESS ((DWORD) 0x00040000) |
| #define PDH_LOG_ACCESS_MASK ((DWORD) 0x000F0000) |
| |
| #define PDH_LOG_CREATE_NEW ((DWORD) 0x00000001) |
| #define PDH_LOG_CREATE_ALWAYS ((DWORD) 0x00000002) |
| #define PDH_LOG_OPEN_ALWAYS ((DWORD) 0x00000003) |
| #define PDH_LOG_OPEN_EXISTING ((DWORD) 0x00000004) |
| #define PDH_LOG_CREATE_MASK ((DWORD) 0x0000000F) |
| |
| #define PDH_LOG_OPT_USER_STRING ((DWORD) 0x01000000) |
| #define PDH_LOG_OPT_CIRCULAR ((DWORD) 0x02000000) |
| #define PDH_LOG_OPT_MAX_IS_BYTES ((DWORD) 0x04000000) |
| #define PDH_LOG_OPT_APPEND ((DWORD) 0x08000000) |
| #define PDH_LOG_OPT_MASK ((DWORD) 0x0F000000) |
| |
| #define PDH_LOG_TYPE_UNDEFINED 0 |
| #define PDH_LOG_TYPE_CSV 1 |
| #define PDH_LOG_TYPE_TSV 2 |
| |
| #define PDH_LOG_TYPE_TRACE_KERNEL 4 |
| #define PDH_LOG_TYPE_TRACE_GENERIC 5 |
| #define PDH_LOG_TYPE_PERFMON 6 |
| #define PDH_LOG_TYPE_SQL 7 |
| #define PDH_LOG_TYPE_BINARY 8 |
| |
| PDH_FUNCTION PdhOpenLogW(LPCWSTR szLogFileName,DWORD dwAccessFlags,LPDWORD lpdwLogType,PDH_HQUERY hQuery,DWORD dwMaxSize,LPCWSTR szUserCaption,PDH_HLOG *phLog); |
| PDH_FUNCTION PdhOpenLogA(LPCSTR szLogFileName,DWORD dwAccessFlags,LPDWORD lpdwLogType,PDH_HQUERY hQuery,DWORD dwMaxSize,LPCSTR szUserCaption,PDH_HLOG *phLog); |
| PDH_FUNCTION PdhUpdateLogW(PDH_HLOG hLog,LPCWSTR szUserString); |
| PDH_FUNCTION PdhUpdateLogA(PDH_HLOG hLog,LPCSTR szUserString); |
| PDH_FUNCTION PdhUpdateLogFileCatalog(PDH_HLOG hLog); |
| PDH_FUNCTION PdhGetLogFileSize(PDH_HLOG hLog,LONGLONG *llSize); |
| PDH_FUNCTION PdhCloseLog(PDH_HLOG hLog,DWORD dwFlags); |
| |
| #define PDH_FLAGS_CLOSE_QUERY ((DWORD) 0x00000001) |
| #define PDH_FLAGS_FILE_BROWSER_ONLY ((DWORD) 0x00000001) |
| |
| PDH_FUNCTION PdhSelectDataSourceW(HWND hWndOwner,DWORD dwFlags,LPWSTR szDataSource,LPDWORD pcchBufferLength); |
| PDH_FUNCTION PdhSelectDataSourceA(HWND hWndOwner,DWORD dwFlags,LPSTR szDataSource,LPDWORD pcchBufferLength); |
| WINBOOL PdhIsRealTimeQuery(PDH_HQUERY hQuery); |
| PDH_FUNCTION PdhSetQueryTimeRange(PDH_HQUERY hQuery,PPDH_TIME_INFO pInfo); |
| PDH_FUNCTION PdhGetDataSourceTimeRangeW(LPCWSTR szDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD pdwBufferSize); |
| PDH_FUNCTION PdhGetDataSourceTimeRangeA(LPCSTR szDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD dwBufferSize); |
| PDH_FUNCTION PdhCollectQueryDataEx(PDH_HQUERY hQuery,DWORD dwIntervalTime,HANDLE hNewDataEvent); |
| PDH_FUNCTION PdhFormatFromRawValue(DWORD dwCounterType,DWORD dwFormat,LONGLONG *pTimeBase,PPDH_RAW_COUNTER pRawValue1,PPDH_RAW_COUNTER pRawValue2,PPDH_FMT_COUNTERVALUE pFmtValue); |
| PDH_FUNCTION PdhGetCounterTimeBase(PDH_HCOUNTER hCounter,LONGLONG *pTimeBase); |
| PDH_FUNCTION PdhReadRawLogRecord(PDH_HLOG hLog,FILETIME ftRecord,PPDH_RAW_LOG_RECORD pRawLogRecord,LPDWORD pdwBufferLength); |
| |
| #define DATA_SOURCE_REGISTRY ((DWORD) 0x00000001) |
| #define DATA_SOURCE_LOGFILE ((DWORD) 0x00000002) |
| #define DATA_SOURCE_WBEM ((DWORD) 0x00000004) |
| |
| PDH_FUNCTION PdhSetDefaultRealTimeDataSource(DWORD dwDataSourceId); |
| PDH_FUNCTION PdhBindInputDataSourceW(PDH_HLOG *phDataSource,LPCWSTR LogFileNameList); |
| PDH_FUNCTION PdhBindInputDataSourceA(PDH_HLOG *phDataSource,LPCSTR LogFileNameList); |
| PDH_FUNCTION PdhOpenQueryH(PDH_HLOG hDataSource,DWORD_PTR dwUserData,PDH_HQUERY *phQuery); |
| PDH_FUNCTION PdhEnumMachinesHW(PDH_HLOG hDataSource,LPWSTR mszMachineList,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhEnumMachinesHA(PDH_HLOG hDataSource,LPSTR mszMachineList,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhEnumObjectsHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPWSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh); |
| PDH_FUNCTION PdhEnumObjectsHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPSTR mszObjectList,LPDWORD pcchBufferSize,DWORD dwDetailLevel,WINBOOL bRefresh); |
| PDH_FUNCTION PdhEnumObjectItemsHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR mszCounterList,LPDWORD pcchCounterListLength,LPWSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags); |
| PDH_FUNCTION PdhEnumObjectItemsHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR mszCounterList,LPDWORD pcchCounterListLength,LPSTR mszInstanceList,LPDWORD pcchInstanceListLength,DWORD dwDetailLevel,DWORD dwFlags); |
| PDH_FUNCTION PdhExpandWildCardPathHW(PDH_HLOG hDataSource,LPCWSTR szWildCardPath,LPWSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags); |
| PDH_FUNCTION PdhExpandWildCardPathHA(PDH_HLOG hDataSource,LPCSTR szWildCardPath,LPSTR mszExpandedPathList,LPDWORD pcchPathListLength,DWORD dwFlags); |
| PDH_FUNCTION PdhGetDataSourceTimeRangeH(PDH_HLOG hDataSource,LPDWORD pdwNumEntries,PPDH_TIME_INFO pInfo,LPDWORD pdwBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfObjectHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPWSTR szDefaultObjectName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfObjectHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPSTR szDefaultObjectName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfCounterHW(PDH_HLOG hDataSource,LPCWSTR szMachineName,LPCWSTR szObjectName,LPWSTR szDefaultCounterName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhGetDefaultPerfCounterHA(PDH_HLOG hDataSource,LPCSTR szMachineName,LPCSTR szObjectName,LPSTR szDefaultCounterName,LPDWORD pcchBufferSize); |
| PDH_FUNCTION PdhBrowseCountersHW(PPDH_BROWSE_DLG_CONFIG_HW pBrowseDlgData); |
| PDH_FUNCTION PdhBrowseCountersHA(PPDH_BROWSE_DLG_CONFIG_HA pBrowseDlgData); |
| PDH_FUNCTION PdhVerifySQLDBW(LPCWSTR szDataSource); |
| PDH_FUNCTION PdhVerifySQLDBA(LPCSTR szDataSource); |
| PDH_FUNCTION PdhCreateSQLTablesW(LPCWSTR szDataSource); |
| PDH_FUNCTION PdhCreateSQLTablesA(LPCSTR szDataSource); |
| PDH_FUNCTION PdhEnumLogSetNamesW(LPCWSTR szDataSource,LPWSTR mszDataSetNameList,LPDWORD pcchBufferLength); |
| PDH_FUNCTION PdhEnumLogSetNamesA(LPCSTR szDataSource,LPSTR mszDataSetNameList,LPDWORD pcchBufferLength); |
| PDH_FUNCTION PdhGetLogSetGUID(PDH_HLOG hLog,GUID *pGuid,int *pRunId); |
| PDH_FUNCTION PdhSetLogSetRunID(PDH_HLOG hLog,int RunId); |
| |
| #if defined(UNICODE) |
| #ifndef _UNICODE |
| #define _UNICODE |
| #endif |
| #endif |
| |
| #if defined(_UNICODE) |
| #if !defined(UNICODE) |
| #define UNICODE |
| #endif |
| #endif |
| |
| #ifdef UNICODE |
| |
| #define PdhOpenQuery PdhOpenQueryW |
| #define PdhAddCounter PdhAddCounterW |
| #define PdhGetCounterInfo PdhGetCounterInfoW |
| #define PDH_COUNTER_INFO PDH_COUNTER_INFO_W |
| #define PPDH_COUNTER_INFO PPDH_COUNTER_INFO_W |
| #define PdhConnectMachine PdhConnectMachineW |
| #define PdhEnumMachines PdhEnumMachinesW |
| #define PdhEnumObjects PdhEnumObjectsW |
| #define PdhEnumObjectItems PdhEnumObjectItemsW |
| #define PdhMakeCounterPath PdhMakeCounterPathW |
| #define PDH_COUNTER_PATH_ELEMENTS PDH_COUNTER_PATH_ELEMENTS_W |
| #define PPDH_COUNTER_PATH_ELEMENTS PPDH_COUNTER_PATH_ELEMENTS_W |
| #define PdhParseCounterPath PdhParseCounterPathW |
| #define PdhParseInstanceName PdhParseInstanceNameW |
| #define PdhValidatePath PdhValidatePathW |
| #define PdhGetDefaultPerfObject PdhGetDefaultPerfObjectW |
| #define PdhGetDefaultPerfCounter PdhGetDefaultPerfCounterW |
| #define PdhBrowseCounters PdhBrowseCountersW |
| #define PdhBrowseCountersH PdhBrowseCountersHW |
| #define PDH_BROWSE_DLG_CONFIG PDH_BROWSE_DLG_CONFIG_W |
| #define PPDH_BROWSE_DLG_CONFIG PPDH_BROWSE_DLG_CONFIG_W |
| #define PDH_BROWSE_DLG_CONFIG_H PDH_BROWSE_DLG_CONFIG_HW |
| #define PPDH_BROWSE_DLG_CONFIG_H PPDH_BROWSE_DLG_CONFIG_HW |
| #define PdhExpandCounterPath PdhExpandCounterPathW |
| |
| #define PDH_FMT_COUNTERVALUE_ITEM PDH_FMT_COUNTERVALUE_ITEM_W |
| #define PPDH_FMT_COUNTERVALUE_ITEM PPDH_FMT_COUNTERVALUE_ITEM_W |
| #define PDH_RAW_COUNTER_ITEM PDH_RAW_COUNTER_ITEM_W |
| #define PPDH_RAW_COUNTER_ITEM PPDH_RAW_COUNTER_ITEM_W |
| #define PdhGetFormattedCounterArray PdhGetFormattedCounterArrayW |
| #define PdhGetRawCounterArray PdhGetRawCounterArrayW |
| #define PdhLookupPerfNameByIndex PdhLookupPerfNameByIndexW |
| #define PdhLookupPerfIndexByName PdhLookupPerfIndexByNameW |
| #define PdhOpenLog PdhOpenLogW |
| #define PdhUpdateLog PdhUpdateLogW |
| #define PdhSelectDataSource PdhSelectDataSourceW |
| #define PdhGetDataSourceTimeRange PdhGetDataSourceTimeRangeW |
| #define PDH_LOG_SERVICE_QUERY_INFO PDH_LOG_SERVICE_QUERY_INFO_W |
| #define PPDH_LOG_SERVICE_QUERY_INFO PPDH_LOG_SERVICE_QUERY_INFO_W |
| #define PdhLogServiceControl PdhLogServiceControlW |
| #define PdhLogServiceQuery PdhLogServiceQueryW |
| #define PdhExpandWildCardPath PdhExpandWildCardPathW |
| #define PdhBindInputDataSource PdhBindInputDataSourceW |
| #define PdhEnumMachinesH PdhEnumMachinesHW |
| #define PdhEnumObjectsH PdhEnumObjectsHW |
| #define PdhEnumObjectItemsH PdhEnumObjectItemsHW |
| #define PdhExpandWildCardPathH PdhExpandWildCardPathHW |
| #define PdhGetDefaultPerfObjectH PdhGetDefaultPerfObjectHW |
| #define PdhGetDefaultPerfCounterH PdhGetDefaultPerfCounterHW |
| #define PdhEnumLogSetNames PdhEnumLogSetNamesW |
| #define PdhCreateSQLTables PdhCreateSQLTablesW |
| #define PdhVerifySQLDB PdhVerifySQLDBW |
| #else |
| |
| #define PdhOpenQuery PdhOpenQueryA |
| #define PdhAddCounter PdhAddCounterA |
| #define PdhGetCounterInfo PdhGetCounterInfoA |
| #define PDH_COUNTER_INFO PDH_COUNTER_INFO_A |
| #define PPDH_COUNTER_INFO PPDH_COUNTER_INFO_A |
| #define PdhConnectMachine PdhConnectMachineA |
| #define PdhEnumMachines PdhEnumMachinesA |
| #define PdhEnumObjects PdhEnumObjectsA |
| #define PdhEnumObjectItems PdhEnumObjectItemsA |
| #define PdhMakeCounterPath PdhMakeCounterPathA |
| #define PDH_COUNTER_PATH_ELEMENTS PDH_COUNTER_PATH_ELEMENTS_A |
| #define PPDH_COUNTER_PATH_ELEMENTS PPDH_COUNTER_PATH_ELEMENTS_A |
| #define PdhParseCounterPath PdhParseCounterPathA |
| #define PdhParseInstanceName PdhParseInstanceNameA |
| #define PdhValidatePath PdhValidatePathA |
| #define PdhGetDefaultPerfObject PdhGetDefaultPerfObjectA |
| #define PdhGetDefaultPerfCounter PdhGetDefaultPerfCounterA |
| #define PdhBrowseCounters PdhBrowseCountersA |
| #define PdhBrowseCountersH PdhBrowseCountersHA |
| #define PDH_BROWSE_DLG_CONFIG PDH_BROWSE_DLG_CONFIG_A |
| #define PPDH_BROWSE_DLG_CONFIG PPDH_BROWSE_DLG_CONFIG_A |
| #define PDH_BROWSE_DLG_CONFIG_H PDH_BROWSE_DLG_CONFIG_HA |
| #define PPDH_BROWSE_DLG_CONFIG_H PPDH_BROWSE_DLG_CONFIG_HA |
| #define PdhExpandCounterPath PdhExpandCounterPathA |
| |
| #define PDH_FMT_COUNTERVALUE_ITEM PDH_FMT_COUNTERVALUE_ITEM_A |
| #define PPDH_FMT_COUNTERVALUE_ITEM PPDH_FMT_COUNTERVALUE_ITEM_A |
| #define PDH_RAW_COUNTER_ITEM PDH_RAW_COUNTER_ITEM_A |
| #define PPDH_RAW_COUNTER_ITEM PPDH_RAW_COUNTER_ITEM_A |
| #define PdhGetFormattedCounterArray PdhGetFormattedCounterArrayA |
| #define PdhGetRawCounterArray PdhGetRawCounterArrayA |
| #define PdhLookupPerfNameByIndex PdhLookupPerfNameByIndexA |
| #define PdhLookupPerfIndexByName PdhLookupPerfIndexByNameA |
| #define PdhOpenLog PdhOpenLogA |
| #define PdhUpdateLog PdhUpdateLogA |
| #define PdhSelectDataSource PdhSelectDataSourceA |
| #define PdhGetDataSourceTimeRange PdhGetDataSourceTimeRangeA |
| #define PDH_LOG_SERVICE_QUERY_INFO PDH_LOG_SERVICE_QUERY_INFO_A |
| #define PPDH_LOG_SERVICE_QUERY_INFO PPDH_LOG_SERVICE_QUERY_INFO_A |
| #define PdhLogServiceControl PdhLogServiceControlA |
| #define PdhLogServiceQuery PdhLogServiceQueryA |
| #define PdhExpandWildCardPath PdhExpandWildCardPathA |
| #define PdhBindInputDataSource PdhBindInputDataSourceA |
| #define PdhEnumMachinesH PdhEnumMachinesHA |
| #define PdhEnumObjectsH PdhEnumObjectsHA |
| #define PdhEnumObjectItemsH PdhEnumObjectItemsHA |
| #define PdhExpandWildCardPathH PdhExpandWildCardPathHA |
| #define PdhGetDefaultPerfObjectH PdhGetDefaultPerfObjectHA |
| #define PdhGetDefaultPerfCounterH PdhGetDefaultPerfCounterHA |
| #define PdhEnumLogSetNames PdhEnumLogSetNamesA |
| #define PdhCreateSQLTables PdhCreateSQLTablesA |
| #define PdhVerifySQLDB PdhVerifySQLDBA |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |