| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Common Performance Data Helper definitions |
| use ctypes::c_double; |
| use shared::basetsd::DWORD_PTR; |
| use shared::guiddef::GUID; |
| use shared::minwindef::{BOOL, DWORD, FILETIME, LPDWORD, UCHAR}; |
| use shared::windef::HWND; |
| use um::winnt::{BOOLEAN, HANDLE, LONG, LONGLONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR}; |
| pub const PDH_FMT_RAW: DWORD = 0x00000010; |
| pub const PDH_FMT_ANSI: DWORD = 0x00000020; |
| pub const PDH_FMT_UNICODE: DWORD = 0x00000040; |
| pub const PDH_FMT_LONG: DWORD = 0x00000100; |
| pub const PDH_FMT_DOUBLE: DWORD = 0x00000200; |
| pub const PDH_FMT_LARGE: DWORD = 0x00000400; |
| pub const PDH_FMT_NOSCALE: DWORD = 0x00001000; |
| pub const PDH_FMT_1000: DWORD = 0x00002000; |
| pub const PDH_FMT_NODATA: DWORD = 0x00004000; |
| pub const PDH_FMT_NOCAP100: DWORD = 0x00008000; |
| pub const PERF_DETAIL_COSTLY: DWORD = 0x00010000; |
| pub const PERF_DETAIL_STANDARD: DWORD = 0x0000FFFF; |
| pub type PDH_STATUS = LONG; |
| pub type PDH_HQUERY = HANDLE; |
| pub type HQUERY = PDH_HQUERY; |
| pub type PDH_HCOUNTER = HANDLE; |
| pub type HCOUNTER = PDH_HCOUNTER; |
| pub type PPDH_BROWSE_DLG_CONFIG_A = *mut PDH_BROWSE_DLG_CONFIG_A; |
| pub type PPDH_BROWSE_DLG_CONFIG_W = *mut PDH_BROWSE_DLG_CONFIG_W; |
| pub type PDH_HLOG = HANDLE; |
| pub type PPDH_RAW_LOG_RECORD = *mut PDH_RAW_LOG_RECORD; |
| pub type PPDH_TIME_INFO = *mut PDH_TIME_INFO; |
| pub type PPDH_RAW_COUNTER = *mut PDH_RAW_COUNTER; |
| pub type PPDH_COUNTER_INFO_A = *mut PDH_COUNTER_INFO_A; |
| pub type PPDH_COUNTER_INFO_W = *mut PDH_COUNTER_INFO_W; |
| pub type PPDH_STATISTICS = *mut PDH_STATISTICS; |
| pub type PPDH_FMT_COUNTERVALUE_ITEM_A = *mut PDH_FMT_COUNTERVALUE_ITEM_A; |
| pub type PPDH_FMT_COUNTERVALUE_ITEM_W = *mut PDH_FMT_COUNTERVALUE_ITEM_W; |
| pub type PPDH_DATA_ITEM_PATH_ELEMENTS_A = *mut PDH_DATA_ITEM_PATH_ELEMENTS_A; |
| pub type PPDH_DATA_ITEM_PATH_ELEMENTS_W = *mut PDH_DATA_ITEM_PATH_ELEMENTS_W; |
| pub type PPDH_FMT_COUNTERVALUE = *mut PDH_FMT_COUNTERVALUE; |
| FN!{stdcall CounterPathCallBack( |
| DWORD_PTR, |
| ) -> PDH_STATUS} |
| pub type PPDH_COUNTER_PATH_ELEMENTS_A = *mut PDH_COUNTER_PATH_ELEMENTS_A; |
| pub type PPDH_COUNTER_PATH_ELEMENTS_W = *mut PDH_COUNTER_PATH_ELEMENTS_W; |
| pub type PPDH_BROWSE_DLG_CONFIG_HA = *mut PDH_BROWSE_DLG_CONFIG_HA; |
| pub type PPDH_BROWSE_DLG_CONFIG_HW = *mut PDH_BROWSE_DLG_CONFIG_HW; |
| UNION!{union PDH_FMT_COUNTERVALUE_u { |
| [u64; 1], |
| longValue longValue_mut: LONG, |
| doubleValue doubleValue_mut: c_double, |
| largeValue largeValue_mut: LONGLONG, |
| AnsiStringValue AnsiStringValue_mut: LPCSTR, |
| WideStringValue WideStringValue_mut: LPCWSTR, |
| }} |
| STRUCT!{struct PDH_FMT_COUNTERVALUE { |
| CStatus: DWORD, |
| u: PDH_FMT_COUNTERVALUE_u, |
| }} |
| STRUCT!{struct PDH_RAW_LOG_RECORD { |
| dwStructureSize: DWORD, |
| dwRecordType: DWORD, |
| dwItems: DWORD, |
| RawBytes: UCHAR, |
| }} |
| STRUCT!{struct PDH_TIME_INFO { |
| StartTime: LONGLONG, |
| EndTime: LONGLONG, |
| SampleCount: DWORD, |
| }} |
| STRUCT!{struct PDH_RAW_COUNTER { |
| CStatus: DWORD, |
| TimeStamp: FILETIME, |
| FirstValue: LONGLONG, |
| SecondValue: LONGLONG, |
| MultiCount: DWORD, |
| }} |
| STRUCT!{struct PDH_STATISTICS { |
| dwFormat: DWORD, |
| count: DWORD, |
| min: PDH_FMT_COUNTERVALUE, |
| max: PDH_FMT_COUNTERVALUE, |
| mean: PDH_FMT_COUNTERVALUE, |
| }} |
| STRUCT!{struct PDH_FMT_COUNTERVALUE_ITEM_A { |
| szName: LPSTR, |
| FmtValue: PDH_FMT_COUNTERVALUE, |
| }} |
| STRUCT!{struct PDH_FMT_COUNTERVALUE_ITEM_W { |
| szName: LPWSTR, |
| FmtValue: PDH_FMT_COUNTERVALUE, |
| }} |
| STRUCT!{struct PDH_BROWSE_DLG_CONFIG_A { |
| flags: DWORD, |
| hWndOwner: HWND, |
| szDataSource: LPSTR, |
| szReturnPathBuffer: LPSTR, |
| cchReturnPathLength: DWORD, |
| pCallBack: CounterPathCallBack, |
| dwCallBackArg: DWORD_PTR, |
| CallBackStatus: PDH_STATUS, |
| dwDefaultDetailLevel: DWORD, |
| szDialogBoxCaption: LPSTR, |
| }} |
| BITFIELD!{PDH_BROWSE_DLG_CONFIG_A flags: DWORD [ |
| IncludeInstanceIndex set_IncludeInstanceIndex[0..1], |
| SingleCounterPerAdd set_SingleCounterPerAdd[1..2], |
| SingleCounterPerDialog set_SingleCounterPerDialog[2..3], |
| LocalCountersOnly set_LocalCountersOnly[3..4], |
| WildCardInstances set_WildCardInstances[4..5], |
| HideDetailBox set_HideDetailBox[5..6], |
| InitializePath set_InitializePath[6..7], |
| DisableMachineSelection set_DisableMachineSelection[7..8], |
| IncludeCostlyObjects set_IncludeCostlyObjects[8..9], |
| ShowObjectBrowser set_ShowObjectBrowser[9..10], |
| ]} |
| STRUCT!{struct PDH_BROWSE_DLG_CONFIG_W { |
| flags: DWORD, |
| hWndOwner: HWND, |
| szDataSource: LPWSTR, |
| szReturnPathBuffer: LPWSTR, |
| cchReturnPathLength: DWORD, |
| pCallBack: CounterPathCallBack, |
| dwCallBackArg: DWORD_PTR, |
| CallBackStatus: PDH_STATUS, |
| dwDefaultDetailLevel: DWORD, |
| szDialogBoxCaption: LPWSTR, |
| }} |
| BITFIELD!{PDH_BROWSE_DLG_CONFIG_W flags: DWORD [ |
| IncludeInstanceIndex set_IncludeInstanceIndex[0..1], |
| SingleCounterPerAdd set_SingleCounterPerAdd[1..2], |
| SingleCounterPerDialog set_SingleCounterPerDialog[2..3], |
| LocalCountersOnly set_LocalCountersOnly[3..4], |
| WildCardInstances set_WildCardInstances[4..5], |
| HideDetailBox set_HideDetailBox[5..6], |
| InitializePath set_InitializePath[6..7], |
| DisableMachineSelection set_DisableMachineSelection[7..8], |
| IncludeCostlyObjects set_IncludeCostlyObjects[8..9], |
| ShowObjectBrowser set_ShowObjectBrowser[9..10], |
| ]} |
| STRUCT!{struct PDH_COUNTER_PATH_ELEMENTS_A { |
| szMachineName: LPSTR, |
| szObjectName: LPSTR, |
| szInstanceName: LPSTR, |
| szParentInstance: LPSTR, |
| dwInstanceIndex: DWORD, |
| szCounterName: LPSTR, |
| }} |
| STRUCT!{struct PDH_COUNTER_PATH_ELEMENTS_W { |
| szMachineName: LPWSTR, |
| szObjectName: LPWSTR, |
| szInstanceName: LPWSTR, |
| szParentInstance: LPWSTR, |
| dwInstanceIndex: DWORD, |
| szCounterName: LPWSTR, |
| }} |
| STRUCT!{struct PDH_DATA_ITEM_PATH_ELEMENTS_A { |
| szMachineName: LPSTR, |
| ObjectGUID: GUID, |
| dwItemId: DWORD, |
| szInstanceName: LPSTR, |
| }} |
| STRUCT!{struct PDH_DATA_ITEM_PATH_ELEMENTS_W { |
| szMachineName: LPWSTR, |
| ObjectGUID: GUID, |
| dwItemId: DWORD, |
| szInstanceName: LPWSTR, |
| }} |
| STRUCT!{struct PDH_COUNTER_INFO_A_u_s { |
| szMachineName: LPSTR, |
| szObjectName: LPSTR, |
| szInstanceName: LPSTR, |
| szParentInstance: LPSTR, |
| dwInstanceIndex: DWORD, |
| szCounterName: LPSTR, |
| }} |
| UNION!{union PDH_COUNTER_INFO_A_u { |
| [u32; 7] [u64; 6], |
| DataItemPath DataItemPath_mut: PDH_DATA_ITEM_PATH_ELEMENTS_A, |
| CounterPath CounterPath_mut: PDH_COUNTER_PATH_ELEMENTS_A, |
| s s_mut: PDH_COUNTER_INFO_A_u_s, |
| }} |
| STRUCT!{struct PDH_COUNTER_INFO_A { |
| dwLength: DWORD, |
| dwType: DWORD, |
| CVersion: DWORD, |
| CStatus: DWORD, |
| lScale: LONG, |
| lDefaultScale: LONG, |
| dwUserData: DWORD_PTR, |
| dwQueryUserData: DWORD_PTR, |
| szFullPath: LPSTR, |
| u: PDH_COUNTER_INFO_A_u, |
| szExplainText: LPSTR, |
| DataBuffer: [DWORD; 1], |
| }} |
| STRUCT!{struct PDH_COUNTER_INFO_W_u_s { |
| szMachineName: LPWSTR, |
| szObjectName: LPWSTR, |
| szInstanceName: LPWSTR, |
| szParentInstance: LPWSTR, |
| dwInstanceIndex: DWORD, |
| szCounterName: LPWSTR, |
| }} |
| UNION!{union PDH_COUNTER_INFO_W_u { |
| [u32; 7] [u64; 6], |
| DataItemPath DataItemPath_mut: PDH_DATA_ITEM_PATH_ELEMENTS_W, |
| CounterPath CounterPath_mut: PDH_COUNTER_PATH_ELEMENTS_W, |
| s s_mut: PDH_COUNTER_INFO_W_u_s, |
| }} |
| STRUCT!{struct PDH_COUNTER_INFO_W { |
| dwLength: DWORD, |
| dwType: DWORD, |
| CVersion: DWORD, |
| CStatus: DWORD, |
| lScale: LONG, |
| lDefaultScale: LONG, |
| dwUserData: DWORD_PTR, |
| dwQueryUserData: DWORD_PTR, |
| szFullPath: LPWSTR, |
| u: PDH_COUNTER_INFO_W_u, |
| szExplainText: LPWSTR, |
| DataBuffer: [DWORD; 1], |
| }} |
| STRUCT!{struct PDH_BROWSE_DLG_CONFIG_HA { |
| flags: DWORD, |
| hWndOwner: HWND, |
| hDataSource: PDH_HLOG, |
| szReturnPathBuffer: LPSTR, |
| cchReturnPathLength: DWORD, |
| pCallBack: CounterPathCallBack, |
| dwCallBackArg: DWORD_PTR, |
| CallBackStatus: PDH_STATUS, |
| dwDefaultDetailLevel: DWORD, |
| szDialogBoxCaption: LPSTR, |
| }} |
| BITFIELD!{PDH_BROWSE_DLG_CONFIG_HA flags: DWORD [ |
| IncludeInstanceIndex set_IncludeInstanceIndex[0..1], |
| SingleCounterPerAdd set_SingleCounterPerAdd[1..2], |
| SingleCounterPerDialog set_SingleCounterPerDialog[2..3], |
| LocalCountersOnly set_LocalCountersOnly[3..4], |
| WildCardInstances set_WildCardInstances[4..5], |
| HideDetailBox set_HideDetailBox[5..6], |
| InitializePath set_InitializePath[6..7], |
| DisableMachineSelection set_DisableMachineSelection[7..8], |
| IncludeCostlyObjects set_IncludeCostlyObjects[8..9], |
| ShowObjectBrowser set_ShowObjectBrowser[9..10], |
| ]} |
| STRUCT!{struct PDH_BROWSE_DLG_CONFIG_HW { |
| flags: DWORD, |
| hWndOwner: HWND, |
| hDataSource: PDH_HLOG, |
| szReturnPathBuffer: LPWSTR, |
| cchReturnPathLength: DWORD, |
| pCallBack: CounterPathCallBack, |
| dwCallBackArg: DWORD_PTR, |
| CallBackStatus: PDH_STATUS, |
| dwDefaultDetailLevel: DWORD, |
| szDialogBoxCaption: LPWSTR, |
| }} |
| BITFIELD!{PDH_BROWSE_DLG_CONFIG_HW flags: DWORD [ |
| IncludeInstanceIndex set_IncludeInstanceIndex[0..1], |
| SingleCounterPerAdd set_SingleCounterPerAdd[1..2], |
| SingleCounterPerDialog set_SingleCounterPerDialog[2..3], |
| LocalCountersOnly set_LocalCountersOnly[3..4], |
| WildCardInstances set_WildCardInstances[4..5], |
| HideDetailBox set_HideDetailBox[5..6], |
| InitializePath set_InitializePath[6..7], |
| DisableMachineSelection set_DisableMachineSelection[7..8], |
| IncludeCostlyObjects set_IncludeCostlyObjects[8..9], |
| ShowObjectBrowser set_ShowObjectBrowser[9..10], |
| ]} |
| extern "system" { |
| pub fn PdhGetDllVersion( |
| lpdwVersion: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhOpenQueryW( |
| szDataSource: LPCWSTR, |
| dwUserData: DWORD_PTR, |
| phQuery: *mut PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhOpenQueryA( |
| szDataSource: LPCSTR, |
| dwUserData: DWORD_PTR, |
| phQuery: *mut PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhAddCounterW( |
| hQuery: PDH_HQUERY, |
| szFullCounterPath: LPCWSTR, |
| dwUserData: DWORD_PTR, |
| phCounter: *mut PDH_HCOUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhAddCounterA( |
| hQuery: PDH_HQUERY, |
| szFullCounterPath: LPCSTR, |
| dwUserData: DWORD_PTR, |
| phCounter: *mut PDH_HCOUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhAddEnglishCounterW( |
| hQuery: PDH_HQUERY, |
| szFullCounterPath: LPCWSTR, |
| dwUserData: DWORD_PTR, |
| phCounter: *mut PDH_HCOUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhAddEnglishCounterA( |
| hQuery: PDH_HQUERY, |
| szFullCounterPath: LPCSTR, |
| dwUserData: DWORD_PTR, |
| phCounter: *mut PDH_HCOUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhCollectQueryDataWithTime( |
| hQuery: PDH_HQUERY, |
| pllTimeStamp: *mut LONGLONG, |
| ) -> PDH_STATUS; |
| pub fn PdhValidatePathExW( |
| hDataSource: PDH_HLOG, |
| szFullPathBuffer: LPCWSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhValidatePathExA( |
| hDataSource: PDH_HLOG, |
| szFullPathBuffer: LPCSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhRemoveCounter( |
| hCounter: PDH_HCOUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhCollectQueryData( |
| hQuery: PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhCloseQuery( |
| hQuery: PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhGetFormattedCounterValue( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| lpdwType: LPDWORD, |
| pValue: PPDH_FMT_COUNTERVALUE, |
| ) -> PDH_STATUS; |
| pub fn PdhGetFormattedCounterArrayA( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| lpdwBufferSize: LPDWORD, |
| lpdwBufferCount: LPDWORD, |
| ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, |
| ) -> PDH_STATUS; |
| pub fn PdhGetFormattedCounterArrayW( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| lpdwBufferSize: LPDWORD, |
| lpdwBufferCount: LPDWORD, |
| ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, |
| ) -> PDH_STATUS; |
| pub fn PdhGetRawCounterValue( |
| hCounter: PDH_HCOUNTER, |
| lpdwType: LPDWORD, |
| pValue: PPDH_RAW_COUNTER, |
| ) -> PDH_STATUS; |
| pub fn PdhGetRawCounterArrayA( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| lpdwBufferSize: LPDWORD, |
| lpdwBufferCount: LPDWORD, |
| ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, |
| ) -> PDH_STATUS; |
| pub fn PdhGetRawCounterArrayW( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| lpdwBufferSize: LPDWORD, |
| lpdwBufferCount: LPDWORD, |
| ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, |
| ) -> PDH_STATUS; |
| pub fn PdhCalculateCounterFromRawValue( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| rawValue1: PPDH_RAW_COUNTER, |
| rawValue2: PPDH_RAW_COUNTER, |
| fmtValue: PPDH_FMT_COUNTERVALUE, |
| ) -> PDH_STATUS; |
| pub fn PdhComputeCounterStatistics( |
| hCounter: PDH_HCOUNTER, |
| dwFormat: DWORD, |
| dwFirstEntry: DWORD, |
| dwNumEntries: DWORD, |
| lpRawValueArray: PPDH_RAW_COUNTER, |
| data: PPDH_STATISTICS, |
| ) -> PDH_STATUS; |
| pub fn PdhGetCounterInfoW( |
| hCounter: PDH_HCOUNTER, |
| bRetrieveExplainText: BOOLEAN, |
| pdwBufferSize: LPDWORD, |
| lpBuffer: PPDH_COUNTER_INFO_W, |
| ) -> PDH_STATUS; |
| pub fn PdhGetCounterInfoA( |
| hCounter: PDH_HCOUNTER, |
| bRetrieveExplainText: BOOLEAN, |
| pdwBufferSize: LPDWORD, |
| lpBuffer: PPDH_COUNTER_INFO_A, |
| ) -> PDH_STATUS; |
| pub fn PdhSetCounterScaleFactor( |
| hCounter: PDH_HCOUNTER, |
| lFactor: LONG, |
| ) -> PDH_STATUS; |
| pub fn PdhConnectMachineW( |
| szMachineName: LPCWSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhConnectMachineA( |
| szMachineName: LPCSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumMachinesW( |
| szDataSource: LPCWSTR, |
| mszMachineNameList: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumMachinesA( |
| szDataSource: LPCSTR, |
| mszMachineNameList: LPSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectsW( |
| szDataSource: LPCWSTR, |
| szMachineName: LPCWSTR, |
| mszObjectList: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| bRefresh: BOOL, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectsA( |
| szDataSource: LPCSTR, |
| szMachineName: LPCSTR, |
| mszObjectList: LPSTR, |
| pcchBufferLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| bRefresh: BOOL, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectItemsW( |
| szDataSource: LPCWSTR, |
| szMachineName: LPCWSTR, |
| szObjectName: LPCWSTR, |
| mszCounterList: LPWSTR, |
| pcchCounterListLength: LPDWORD, |
| mszInstanceList: LPWSTR, |
| pcchInstanceListLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectItemsA( |
| szDataSource: LPCSTR, |
| szMachineName: LPCSTR, |
| szObjectName: LPCSTR, |
| mszCounterList: LPSTR, |
| pcchCounterListLength: LPDWORD, |
| mszInstanceList: LPSTR, |
| pcchInstanceListLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhMakeCounterPathW( |
| pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_W, |
| szFullPathBuffer: LPWSTR, |
| pcchBufferSize: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhMakeCounterPathA( |
| pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_A, |
| szFullPathBuffer: LPSTR, |
| pcchBufferSize: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhParseCounterPathW( |
| szFullPathBuffer: LPCWSTR, |
| pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_W, |
| pcchBufferSize: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhParseCounterPathA( |
| szFullPathBuffer: LPCSTR, |
| pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_A, |
| pcchBufferSize: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhParseInstanceNameW( |
| szInstanceString: LPCWSTR, |
| szInstanceName: LPWSTR, |
| pcchInstanceNameLength: LPDWORD, |
| szParentName: LPWSTR, |
| pcchParentNameLength: LPDWORD, |
| lpIndex: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhParseInstanceNameA( |
| szInstanceString: LPCSTR, |
| szInstanceName: LPSTR, |
| pcchInstanceNameLength: LPDWORD, |
| szParentName: LPSTR, |
| pcchParentNameLength: LPDWORD, |
| lpIndex: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhValidatePathW( |
| szFullCounterPath: LPCWSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhValidatePathA( |
| szFullCounterPath: LPCSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfObjectW( |
| szDataSource: LPCWSTR, |
| szMachineName: LPCWSTR, |
| szDefaultObjectName: LPWSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfObjectA( |
| szDataSource: LPCSTR, |
| szMachineName: LPCSTR, |
| szDefaultObjectName: LPSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfCounterW( |
| szDataSource: LPCWSTR, |
| szMachineName: LPCWSTR, |
| szObjectName: LPCWSTR, |
| szDefaultCounterName: LPWSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfCounterA( |
| szDataSource: LPCSTR, |
| szMachineName: LPCSTR, |
| szObjectName: LPCSTR, |
| szDefaultCounterName: LPSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhBrowseCountersW( |
| pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_W, |
| ) -> PDH_STATUS; |
| pub fn PdhBrowseCountersA( |
| pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_A, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandCounterPathW( |
| szWildCardPath: LPCWSTR, |
| mszExpandedPathList: LPWSTR, |
| pcchPathListLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandCounterPathA( |
| szWildCardPath: LPCSTR, |
| mszExpandedPathList: LPSTR, |
| pcchPathListLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhLookupPerfNameByIndexW( |
| szMachineName: LPCWSTR, |
| dwNameIndex: DWORD, |
| szNameBuffer: LPWSTR, |
| pcchNameBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhLookupPerfNameByIndexA( |
| szMachineName: LPCSTR, |
| dwNameIndex: DWORD, |
| szNameBuffer: LPSTR, |
| pcchNameBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhLookupPerfIndexByNameW( |
| szMachineName: LPCWSTR, |
| szNameBuffer: LPCWSTR, |
| pdwIndex: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhLookupPerfIndexByNameA( |
| szMachineName: LPCSTR, |
| szNameBuffer: LPCSTR, |
| pdwIndex: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandWildCardPathW( |
| szDataSource: LPCWSTR, |
| szWildCardPath: LPCWSTR, |
| mszExpandedPathList: LPWSTR, |
| pcchPathListLength: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandWildCardPathA( |
| szDataSource: LPCSTR, |
| szWildCardPath: LPCSTR, |
| mszExpandedPathList: LPSTR, |
| pcchPathListLength: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhOpenLogW( |
| szLogFileName: LPCWSTR, |
| dwAccessFlags: DWORD, |
| lpdwLogType: LPDWORD, |
| hQuery: PDH_HQUERY, |
| dwMaxSize: DWORD, |
| szUserCaption: LPCWSTR, |
| phLog: *mut PDH_HLOG, |
| ) -> PDH_STATUS; |
| pub fn PdhOpenLogA( |
| szLogFileName: LPCSTR, |
| dwAccessFlags: DWORD, |
| lpdwLogType: LPDWORD, |
| hQuery: PDH_HQUERY, |
| dwMaxSize: DWORD, |
| szUserCaption: LPCSTR, |
| phLog: *mut PDH_HLOG, |
| ) -> PDH_STATUS; |
| pub fn PdhUpdateLogW( |
| hLog: PDH_HLOG, |
| szUserString: LPCWSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhUpdateLogA( |
| hLog: PDH_HLOG, |
| szUserString: LPCSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhUpdateLogFileCatalog( |
| hLog: PDH_HLOG, |
| ) -> PDH_STATUS; |
| pub fn PdhGetLogFileSize( |
| hLog: PDH_HLOG, |
| llSize: *mut LONGLONG, |
| ) -> PDH_STATUS; |
| pub fn PdhCloseLog( |
| hLog: PDH_HLOG, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhSelectDataSourceW( |
| hWndOwner: HWND, |
| dwFlags: DWORD, |
| szDataSource: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhSelectDataSourceA( |
| hWndOwner: HWND, |
| dwFlags: DWORD, |
| szDataSource: LPSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhIsRealTimeQuery( |
| hQuery: PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhSetQueryTimeRange( |
| hQuery: PDH_HQUERY, |
| pInfo: PPDH_TIME_INFO, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDataSourceTimeRangeW( |
| szDataSource: LPCWSTR, |
| pdwNumEntries: LPDWORD, |
| pInfo: PPDH_TIME_INFO, |
| pdwBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDataSourceTimeRangeA( |
| szDataSource: LPCSTR, |
| pdwNumEntries: LPDWORD, |
| pInfo: PPDH_TIME_INFO, |
| pdwBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhCollectQueryDataEx( |
| hQuery: PDH_HQUERY, |
| dwIntervalTime: DWORD, |
| hNewDataEvent: HANDLE, |
| ) -> PDH_STATUS; |
| pub fn PdhFormatFromRawValue( |
| dwCounterType: DWORD, |
| dwFormat: DWORD, |
| pTimeBase: *mut LONGLONG, |
| rawValue1: PPDH_RAW_COUNTER, |
| rawValue2: PPDH_RAW_COUNTER, |
| fmtValue: PPDH_FMT_COUNTERVALUE, |
| ) -> PDH_STATUS; |
| pub fn PdhGetCounterTimeBase( |
| hCounter: PDH_HCOUNTER, |
| pTimeBase: *mut LONGLONG, |
| ) -> PDH_STATUS; |
| pub fn PdhReadRawLogRecord( |
| hLog: PDH_HLOG, |
| ftRecord: FILETIME, |
| pRawLogRecord: PPDH_RAW_LOG_RECORD, |
| pdwBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhSetDefaultRealTimeDataSource( |
| dwDataSourceId: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhBindInputDataSourceW( |
| phDataSource: *mut PDH_HLOG, |
| szLogFileNameList: LPCWSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhBindInputDataSourceA( |
| phDataSource: *mut PDH_HLOG, |
| szLogFileNameList: LPCSTR, |
| ) -> PDH_STATUS; |
| pub fn PdhOpenQueryH( |
| hDataSource: PDH_HLOG, |
| dwUserData: DWORD_PTR, |
| phQuery: *mut PDH_HQUERY, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumMachinesHW( |
| hDataSource: PDH_HLOG, |
| mszMachineNameList: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumMachinesHA( |
| hDataSource: PDH_HLOG, |
| mszMachineNameList: LPSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectsHW( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCWSTR, |
| mszObjectList: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| bRefresh: BOOL, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectsHA( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCSTR, |
| mszObjectList: LPSTR, |
| pcchBufferLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| bRefresh: BOOL, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectItemsHW( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCWSTR, |
| szObjectName: LPCWSTR, |
| mszCounterList: LPWSTR, |
| pcchCounterListLength: LPDWORD, |
| mszInstanceList: LPWSTR, |
| pcchInstanceListLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumObjectItemsHA( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCSTR, |
| szObjectName: LPCSTR, |
| mszCounterList: LPSTR, |
| pcchCounterListLength: LPDWORD, |
| mszInstanceList: LPSTR, |
| pcchInstanceListLength: LPDWORD, |
| dwDetailLevel: DWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandWildCardPathHW( |
| hDataSource: PDH_HLOG, |
| szWildCardPath: LPCWSTR, |
| mszExpandedPathList: LPWSTR, |
| pcchPathListLength: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhExpandWildCardPathHA( |
| hDataSource: PDH_HLOG, |
| szWildCardPath: LPCSTR, |
| mszExpandedPathList: LPSTR, |
| pcchPathListLength: LPDWORD, |
| dwFlags: DWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDataSourceTimeRangeH( |
| hDataSource: PDH_HLOG, |
| pdwNumEntries: LPDWORD, |
| pInfo: PPDH_TIME_INFO, |
| pdwBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfObjectHW( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCWSTR, |
| szDefaultObjectName: LPWSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfObjectHA( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCSTR, |
| szDefaultObjectName: LPSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfCounterHW( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCWSTR, |
| szObjectName: LPCWSTR, |
| szDefaultCounterName: LPWSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhGetDefaultPerfCounterHA( |
| hDataSource: PDH_HLOG, |
| szMachineName: LPCSTR, |
| szObjectName: LPCSTR, |
| szDefaultCounterName: LPSTR, |
| pcchBufferSize: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhBrowseCountersHW( |
| pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HW, |
| ) -> PDH_STATUS; |
| pub fn PdhBrowseCountersHA( |
| pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HA, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumLogSetNamesW( |
| szDataSource: LPCWSTR, |
| mszLogSetNameList: LPWSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| pub fn PdhEnumLogSetNamesA( |
| szDataSource: LPCSTR, |
| mszLogSetNameList: LPSTR, |
| pcchBufferLength: LPDWORD, |
| ) -> PDH_STATUS; |
| } |
| // pub fn PdhVerifySQLDBW() -> PDH_STATUS; |
| // pub fn PdhVerifySQLDBA() -> PDH_STATUS; |
| // pub fn PdhCreateSQLTablesW() -> PDH_STATUS; |
| // pub fn PdhCreateSQLTablesA() -> PDH_STATUS; |
| //pub fn PdhGetLogSetGUID() -> PDH_STATUS; |
| // pub fn PdhSetLogSetRunID() -> PDH_STATUS; |