1 // Copyright © 2016-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! Common Performance Data Helper definitions 8 use ctypes::c_double; 9 use shared::basetsd::DWORD_PTR; 10 use shared::guiddef::GUID; 11 use shared::minwindef::{BOOL, DWORD, FILETIME, LPDWORD, UCHAR}; 12 use shared::windef::HWND; 13 use um::winnt::{BOOLEAN, HANDLE, LONG, LONGLONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR}; 14 pub const PDH_FMT_RAW: DWORD = 0x00000010; 15 pub const PDH_FMT_ANSI: DWORD = 0x00000020; 16 pub const PDH_FMT_UNICODE: DWORD = 0x00000040; 17 pub const PDH_FMT_LONG: DWORD = 0x00000100; 18 pub const PDH_FMT_DOUBLE: DWORD = 0x00000200; 19 pub const PDH_FMT_LARGE: DWORD = 0x00000400; 20 pub const PDH_FMT_NOSCALE: DWORD = 0x00001000; 21 pub const PDH_FMT_1000: DWORD = 0x00002000; 22 pub const PDH_FMT_NODATA: DWORD = 0x00004000; 23 pub const PDH_FMT_NOCAP100: DWORD = 0x00008000; 24 pub const PERF_DETAIL_COSTLY: DWORD = 0x00010000; 25 pub const PERF_DETAIL_STANDARD: DWORD = 0x0000FFFF; 26 pub type PDH_STATUS = LONG; 27 pub type PDH_HQUERY = HANDLE; 28 pub type HQUERY = PDH_HQUERY; 29 pub type PDH_HCOUNTER = HANDLE; 30 pub type HCOUNTER = PDH_HCOUNTER; 31 pub type PPDH_BROWSE_DLG_CONFIG_A = *mut PDH_BROWSE_DLG_CONFIG_A; 32 pub type PPDH_BROWSE_DLG_CONFIG_W = *mut PDH_BROWSE_DLG_CONFIG_W; 33 pub type PDH_HLOG = HANDLE; 34 pub type PPDH_RAW_LOG_RECORD = *mut PDH_RAW_LOG_RECORD; 35 pub type PPDH_TIME_INFO = *mut PDH_TIME_INFO; 36 pub type PPDH_RAW_COUNTER = *mut PDH_RAW_COUNTER; 37 pub type PPDH_COUNTER_INFO_A = *mut PDH_COUNTER_INFO_A; 38 pub type PPDH_COUNTER_INFO_W = *mut PDH_COUNTER_INFO_W; 39 pub type PPDH_STATISTICS = *mut PDH_STATISTICS; 40 pub type PPDH_FMT_COUNTERVALUE_ITEM_A = *mut PDH_FMT_COUNTERVALUE_ITEM_A; 41 pub type PPDH_FMT_COUNTERVALUE_ITEM_W = *mut PDH_FMT_COUNTERVALUE_ITEM_W; 42 pub type PPDH_DATA_ITEM_PATH_ELEMENTS_A = *mut PDH_DATA_ITEM_PATH_ELEMENTS_A; 43 pub type PPDH_DATA_ITEM_PATH_ELEMENTS_W = *mut PDH_DATA_ITEM_PATH_ELEMENTS_W; 44 pub type PPDH_FMT_COUNTERVALUE = *mut PDH_FMT_COUNTERVALUE; 45 FN!{stdcall CounterPathCallBack( 46 DWORD_PTR, 47 ) -> PDH_STATUS} 48 pub type PPDH_COUNTER_PATH_ELEMENTS_A = *mut PDH_COUNTER_PATH_ELEMENTS_A; 49 pub type PPDH_COUNTER_PATH_ELEMENTS_W = *mut PDH_COUNTER_PATH_ELEMENTS_W; 50 pub type PPDH_BROWSE_DLG_CONFIG_HA = *mut PDH_BROWSE_DLG_CONFIG_HA; 51 pub type PPDH_BROWSE_DLG_CONFIG_HW = *mut PDH_BROWSE_DLG_CONFIG_HW; 52 UNION!{union PDH_FMT_COUNTERVALUE_u { 53 [u64; 1], 54 longValue longValue_mut: LONG, 55 doubleValue doubleValue_mut: c_double, 56 largeValue largeValue_mut: LONGLONG, 57 AnsiStringValue AnsiStringValue_mut: LPCSTR, 58 WideStringValue WideStringValue_mut: LPCWSTR, 59 }} 60 STRUCT!{struct PDH_FMT_COUNTERVALUE { 61 CStatus: DWORD, 62 u: PDH_FMT_COUNTERVALUE_u, 63 }} 64 STRUCT!{struct PDH_RAW_LOG_RECORD { 65 dwStructureSize: DWORD, 66 dwRecordType: DWORD, 67 dwItems: DWORD, 68 RawBytes: UCHAR, 69 }} 70 STRUCT!{struct PDH_TIME_INFO { 71 StartTime: LONGLONG, 72 EndTime: LONGLONG, 73 SampleCount: DWORD, 74 }} 75 STRUCT!{struct PDH_RAW_COUNTER { 76 CStatus: DWORD, 77 TimeStamp: FILETIME, 78 FirstValue: LONGLONG, 79 SecondValue: LONGLONG, 80 MultiCount: DWORD, 81 }} 82 STRUCT!{struct PDH_STATISTICS { 83 dwFormat: DWORD, 84 count: DWORD, 85 min: PDH_FMT_COUNTERVALUE, 86 max: PDH_FMT_COUNTERVALUE, 87 mean: PDH_FMT_COUNTERVALUE, 88 }} 89 STRUCT!{struct PDH_FMT_COUNTERVALUE_ITEM_A { 90 szName: LPSTR, 91 FmtValue: PDH_FMT_COUNTERVALUE, 92 }} 93 STRUCT!{struct PDH_FMT_COUNTERVALUE_ITEM_W { 94 szName: LPWSTR, 95 FmtValue: PDH_FMT_COUNTERVALUE, 96 }} 97 STRUCT!{struct PDH_BROWSE_DLG_CONFIG_A { 98 flags: DWORD, 99 hWndOwner: HWND, 100 szDataSource: LPSTR, 101 szReturnPathBuffer: LPSTR, 102 cchReturnPathLength: DWORD, 103 pCallBack: CounterPathCallBack, 104 dwCallBackArg: DWORD_PTR, 105 CallBackStatus: PDH_STATUS, 106 dwDefaultDetailLevel: DWORD, 107 szDialogBoxCaption: LPSTR, 108 }} 109 BITFIELD!(PDH_BROWSE_DLG_CONFIG_A flags: DWORD [ 110 IncludeInstanceIndex set_IncludeInstanceIndex[0..1], 111 SingleCounterPerAdd set_SingleCounterPerAdd[1..2], 112 SingleCounterPerDialog set_SingleCounterPerDialog[2..3], 113 LocalCountersOnly set_LocalCountersOnly[3..4], 114 WildCardInstances set_WildCardInstances[4..5], 115 HideDetailBox set_HideDetailBox[5..6], 116 InitializePath set_InitializePath[6..7], 117 DisableMachineSelection set_DisableMachineSelection[7..8], 118 IncludeCostlyObjects set_IncludeCostlyObjects[8..9], 119 ShowObjectBrowser set_ShowObjectBrowser[9..10], 120 ]); 121 STRUCT!{struct PDH_BROWSE_DLG_CONFIG_W { 122 flags: DWORD, 123 hWndOwner: HWND, 124 szDataSource: LPWSTR, 125 szReturnPathBuffer: LPWSTR, 126 cchReturnPathLength: DWORD, 127 pCallBack: CounterPathCallBack, 128 dwCallBackArg: DWORD_PTR, 129 CallBackStatus: PDH_STATUS, 130 dwDefaultDetailLevel: DWORD, 131 szDialogBoxCaption: LPWSTR, 132 }} 133 BITFIELD!(PDH_BROWSE_DLG_CONFIG_W flags: DWORD [ 134 IncludeInstanceIndex set_IncludeInstanceIndex[0..1], 135 SingleCounterPerAdd set_SingleCounterPerAdd[1..2], 136 SingleCounterPerDialog set_SingleCounterPerDialog[2..3], 137 LocalCountersOnly set_LocalCountersOnly[3..4], 138 WildCardInstances set_WildCardInstances[4..5], 139 HideDetailBox set_HideDetailBox[5..6], 140 InitializePath set_InitializePath[6..7], 141 DisableMachineSelection set_DisableMachineSelection[7..8], 142 IncludeCostlyObjects set_IncludeCostlyObjects[8..9], 143 ShowObjectBrowser set_ShowObjectBrowser[9..10], 144 ]); 145 STRUCT!{struct PDH_COUNTER_PATH_ELEMENTS_A { 146 szMachineName: LPSTR, 147 szObjectName: LPSTR, 148 szInstanceName: LPSTR, 149 szParentInstance: LPSTR, 150 dwInstanceIndex: DWORD, 151 szCounterName: LPSTR, 152 }} 153 STRUCT!{struct PDH_COUNTER_PATH_ELEMENTS_W { 154 szMachineName: LPWSTR, 155 szObjectName: LPWSTR, 156 szInstanceName: LPWSTR, 157 szParentInstance: LPWSTR, 158 dwInstanceIndex: DWORD, 159 szCounterName: LPWSTR, 160 }} 161 STRUCT!{struct PDH_DATA_ITEM_PATH_ELEMENTS_A { 162 szMachineName: LPSTR, 163 ObjectGUID: GUID, 164 dwItemId: DWORD, 165 szInstanceName: LPSTR, 166 }} 167 STRUCT!{struct PDH_DATA_ITEM_PATH_ELEMENTS_W { 168 szMachineName: LPWSTR, 169 ObjectGUID: GUID, 170 dwItemId: DWORD, 171 szInstanceName: LPWSTR, 172 }} 173 STRUCT!{struct PDH_COUNTER_INFO_A_u_s { 174 szMachineName: LPSTR, 175 szObjectName: LPSTR, 176 szInstanceName: LPSTR, 177 szParentInstance: LPSTR, 178 dwInstanceIndex: DWORD, 179 szCounterName: LPSTR, 180 }} 181 UNION!{union PDH_COUNTER_INFO_A_u { 182 [u32; 7] [u64; 6], 183 DataItemPath DataItemPath_mut: PDH_DATA_ITEM_PATH_ELEMENTS_A, 184 CounterPath CounterPath_mut: PDH_COUNTER_PATH_ELEMENTS_A, 185 s s_mut: PDH_COUNTER_INFO_A_u_s, 186 }} 187 STRUCT!{struct PDH_COUNTER_INFO_A { 188 dwLength: DWORD, 189 dwType: DWORD, 190 CVersion: DWORD, 191 CStatus: DWORD, 192 lScale: LONG, 193 lDefaultScale: LONG, 194 dwUserData: DWORD_PTR, 195 dwQueryUserData: DWORD_PTR, 196 szFullPath: LPSTR, 197 u: PDH_COUNTER_INFO_A_u, 198 szExplainText: LPSTR, 199 DataBuffer: [DWORD; 1], 200 }} 201 STRUCT!{struct PDH_COUNTER_INFO_W_u_s { 202 szMachineName: LPWSTR, 203 szObjectName: LPWSTR, 204 szInstanceName: LPWSTR, 205 szParentInstance: LPWSTR, 206 dwInstanceIndex: DWORD, 207 szCounterName: LPWSTR, 208 }} 209 UNION!{union PDH_COUNTER_INFO_W_u { 210 [u32; 7] [u64; 6], 211 DataItemPath DataItemPath_mut: PDH_DATA_ITEM_PATH_ELEMENTS_W, 212 CounterPath CounterPath_mut: PDH_COUNTER_PATH_ELEMENTS_W, 213 s s_mut: PDH_COUNTER_INFO_W_u_s, 214 }} 215 STRUCT!{struct PDH_COUNTER_INFO_W { 216 dwLength: DWORD, 217 dwType: DWORD, 218 CVersion: DWORD, 219 CStatus: DWORD, 220 lScale: LONG, 221 lDefaultScale: LONG, 222 dwUserData: DWORD_PTR, 223 dwQueryUserData: DWORD_PTR, 224 szFullPath: LPWSTR, 225 u: PDH_COUNTER_INFO_W_u, 226 szExplainText: LPWSTR, 227 DataBuffer: [DWORD; 1], 228 }} 229 STRUCT!{struct PDH_BROWSE_DLG_CONFIG_HA { 230 flags: DWORD, 231 hWndOwner: HWND, 232 hDataSource: PDH_HLOG, 233 szReturnPathBuffer: LPSTR, 234 cchReturnPathLength: DWORD, 235 pCallBack: CounterPathCallBack, 236 dwCallBackArg: DWORD_PTR, 237 CallBackStatus: PDH_STATUS, 238 dwDefaultDetailLevel: DWORD, 239 szDialogBoxCaption: LPSTR, 240 }} 241 BITFIELD!(PDH_BROWSE_DLG_CONFIG_HA flags: DWORD [ 242 IncludeInstanceIndex set_IncludeInstanceIndex[0..1], 243 SingleCounterPerAdd set_SingleCounterPerAdd[1..2], 244 SingleCounterPerDialog set_SingleCounterPerDialog[2..3], 245 LocalCountersOnly set_LocalCountersOnly[3..4], 246 WildCardInstances set_WildCardInstances[4..5], 247 HideDetailBox set_HideDetailBox[5..6], 248 InitializePath set_InitializePath[6..7], 249 DisableMachineSelection set_DisableMachineSelection[7..8], 250 IncludeCostlyObjects set_IncludeCostlyObjects[8..9], 251 ShowObjectBrowser set_ShowObjectBrowser[9..10], 252 ]); 253 STRUCT!{struct PDH_BROWSE_DLG_CONFIG_HW { 254 flags: DWORD, 255 hWndOwner: HWND, 256 hDataSource: PDH_HLOG, 257 szReturnPathBuffer: LPWSTR, 258 cchReturnPathLength: DWORD, 259 pCallBack: CounterPathCallBack, 260 dwCallBackArg: DWORD_PTR, 261 CallBackStatus: PDH_STATUS, 262 dwDefaultDetailLevel: DWORD, 263 szDialogBoxCaption: LPWSTR, 264 }} 265 BITFIELD!(PDH_BROWSE_DLG_CONFIG_HW flags: DWORD [ 266 IncludeInstanceIndex set_IncludeInstanceIndex[0..1], 267 SingleCounterPerAdd set_SingleCounterPerAdd[1..2], 268 SingleCounterPerDialog set_SingleCounterPerDialog[2..3], 269 LocalCountersOnly set_LocalCountersOnly[3..4], 270 WildCardInstances set_WildCardInstances[4..5], 271 HideDetailBox set_HideDetailBox[5..6], 272 InitializePath set_InitializePath[6..7], 273 DisableMachineSelection set_DisableMachineSelection[7..8], 274 IncludeCostlyObjects set_IncludeCostlyObjects[8..9], 275 ShowObjectBrowser set_ShowObjectBrowser[9..10], 276 ]); 277 extern "system" { PdhGetDllVersion( lpdwVersion: LPDWORD, ) -> PDH_STATUS278 pub fn PdhGetDllVersion( 279 lpdwVersion: LPDWORD, 280 ) -> PDH_STATUS; PdhOpenQueryW( szDataSource: LPCWSTR, dwUserData: DWORD_PTR, phQuery: *mut PDH_HQUERY, ) -> PDH_STATUS281 pub fn PdhOpenQueryW( 282 szDataSource: LPCWSTR, 283 dwUserData: DWORD_PTR, 284 phQuery: *mut PDH_HQUERY, 285 ) -> PDH_STATUS; PdhOpenQueryA( szDataSource: LPCSTR, dwUserData: DWORD_PTR, phQuery: *mut PDH_HQUERY, ) -> PDH_STATUS286 pub fn PdhOpenQueryA( 287 szDataSource: LPCSTR, 288 dwUserData: DWORD_PTR, 289 phQuery: *mut PDH_HQUERY, 290 ) -> PDH_STATUS; PdhAddCounterW( hQuery: PDH_HQUERY, szFullCounterPath: LPCWSTR, dwUserData: DWORD_PTR, phCounter: *mut PDH_HCOUNTER, ) -> PDH_STATUS291 pub fn PdhAddCounterW( 292 hQuery: PDH_HQUERY, 293 szFullCounterPath: LPCWSTR, 294 dwUserData: DWORD_PTR, 295 phCounter: *mut PDH_HCOUNTER, 296 ) -> PDH_STATUS; PdhAddCounterA( hQuery: PDH_HQUERY, szFullCounterPath: LPCSTR, dwUserData: DWORD_PTR, phCounter: *mut PDH_HCOUNTER, ) -> PDH_STATUS297 pub fn PdhAddCounterA( 298 hQuery: PDH_HQUERY, 299 szFullCounterPath: LPCSTR, 300 dwUserData: DWORD_PTR, 301 phCounter: *mut PDH_HCOUNTER, 302 ) -> PDH_STATUS; PdhAddEnglishCounterW( hQuery: PDH_HQUERY, szFullCounterPath: LPCWSTR, dwUserData: DWORD_PTR, phCounter: *mut PDH_HCOUNTER, ) -> PDH_STATUS303 pub fn PdhAddEnglishCounterW( 304 hQuery: PDH_HQUERY, 305 szFullCounterPath: LPCWSTR, 306 dwUserData: DWORD_PTR, 307 phCounter: *mut PDH_HCOUNTER, 308 ) -> PDH_STATUS; PdhAddEnglishCounterA( hQuery: PDH_HQUERY, szFullCounterPath: LPCSTR, dwUserData: DWORD_PTR, phCounter: *mut PDH_HCOUNTER, ) -> PDH_STATUS309 pub fn PdhAddEnglishCounterA( 310 hQuery: PDH_HQUERY, 311 szFullCounterPath: LPCSTR, 312 dwUserData: DWORD_PTR, 313 phCounter: *mut PDH_HCOUNTER, 314 ) -> PDH_STATUS; PdhCollectQueryDataWithTime( hQuery: PDH_HQUERY, pllTimeStamp: *mut LONGLONG, ) -> PDH_STATUS315 pub fn PdhCollectQueryDataWithTime( 316 hQuery: PDH_HQUERY, 317 pllTimeStamp: *mut LONGLONG, 318 ) -> PDH_STATUS; PdhValidatePathExW( hDataSource: PDH_HLOG, szFullPathBuffer: LPCWSTR, ) -> PDH_STATUS319 pub fn PdhValidatePathExW( 320 hDataSource: PDH_HLOG, 321 szFullPathBuffer: LPCWSTR, 322 ) -> PDH_STATUS; PdhValidatePathExA( hDataSource: PDH_HLOG, szFullPathBuffer: LPCSTR, ) -> PDH_STATUS323 pub fn PdhValidatePathExA( 324 hDataSource: PDH_HLOG, 325 szFullPathBuffer: LPCSTR, 326 ) -> PDH_STATUS; PdhRemoveCounter( hCounter: PDH_HCOUNTER, ) -> PDH_STATUS327 pub fn PdhRemoveCounter( 328 hCounter: PDH_HCOUNTER, 329 ) -> PDH_STATUS; PdhCollectQueryData( hQuery: PDH_HQUERY, ) -> PDH_STATUS330 pub fn PdhCollectQueryData( 331 hQuery: PDH_HQUERY, 332 ) -> PDH_STATUS; PdhCloseQuery( hQuery: PDH_HQUERY, ) -> PDH_STATUS333 pub fn PdhCloseQuery( 334 hQuery: PDH_HQUERY, 335 ) -> PDH_STATUS; PdhGetFormattedCounterValue( hCounter: PDH_HCOUNTER, dwFormat: DWORD, lpdwType: LPDWORD, pValue: PPDH_FMT_COUNTERVALUE, ) -> PDH_STATUS336 pub fn PdhGetFormattedCounterValue( 337 hCounter: PDH_HCOUNTER, 338 dwFormat: DWORD, 339 lpdwType: LPDWORD, 340 pValue: PPDH_FMT_COUNTERVALUE, 341 ) -> PDH_STATUS; PdhGetFormattedCounterArrayA( hCounter: PDH_HCOUNTER, dwFormat: DWORD, lpdwBufferSize: LPDWORD, lpdwBufferCount: LPDWORD, ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, ) -> PDH_STATUS342 pub fn PdhGetFormattedCounterArrayA( 343 hCounter: PDH_HCOUNTER, 344 dwFormat: DWORD, 345 lpdwBufferSize: LPDWORD, 346 lpdwBufferCount: LPDWORD, 347 ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, 348 ) -> PDH_STATUS; PdhGetFormattedCounterArrayW( hCounter: PDH_HCOUNTER, dwFormat: DWORD, lpdwBufferSize: LPDWORD, lpdwBufferCount: LPDWORD, ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, ) -> PDH_STATUS349 pub fn PdhGetFormattedCounterArrayW( 350 hCounter: PDH_HCOUNTER, 351 dwFormat: DWORD, 352 lpdwBufferSize: LPDWORD, 353 lpdwBufferCount: LPDWORD, 354 ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, 355 ) -> PDH_STATUS; PdhGetRawCounterValue( hCounter: PDH_HCOUNTER, lpdwType: LPDWORD, pValue: PPDH_RAW_COUNTER, ) -> PDH_STATUS356 pub fn PdhGetRawCounterValue( 357 hCounter: PDH_HCOUNTER, 358 lpdwType: LPDWORD, 359 pValue: PPDH_RAW_COUNTER, 360 ) -> PDH_STATUS; PdhGetRawCounterArrayA( hCounter: PDH_HCOUNTER, dwFormat: DWORD, lpdwBufferSize: LPDWORD, lpdwBufferCount: LPDWORD, ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, ) -> PDH_STATUS361 pub fn PdhGetRawCounterArrayA( 362 hCounter: PDH_HCOUNTER, 363 dwFormat: DWORD, 364 lpdwBufferSize: LPDWORD, 365 lpdwBufferCount: LPDWORD, 366 ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_A, 367 ) -> PDH_STATUS; PdhGetRawCounterArrayW( hCounter: PDH_HCOUNTER, dwFormat: DWORD, lpdwBufferSize: LPDWORD, lpdwBufferCount: LPDWORD, ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, ) -> PDH_STATUS368 pub fn PdhGetRawCounterArrayW( 369 hCounter: PDH_HCOUNTER, 370 dwFormat: DWORD, 371 lpdwBufferSize: LPDWORD, 372 lpdwBufferCount: LPDWORD, 373 ItemBuffer: PPDH_FMT_COUNTERVALUE_ITEM_W, 374 ) -> PDH_STATUS; PdhCalculateCounterFromRawValue( hCounter: PDH_HCOUNTER, dwFormat: DWORD, rawValue1: PPDH_RAW_COUNTER, rawValue2: PPDH_RAW_COUNTER, fmtValue: PPDH_FMT_COUNTERVALUE, ) -> PDH_STATUS375 pub fn PdhCalculateCounterFromRawValue( 376 hCounter: PDH_HCOUNTER, 377 dwFormat: DWORD, 378 rawValue1: PPDH_RAW_COUNTER, 379 rawValue2: PPDH_RAW_COUNTER, 380 fmtValue: PPDH_FMT_COUNTERVALUE, 381 ) -> PDH_STATUS; PdhComputeCounterStatistics( hCounter: PDH_HCOUNTER, dwFormat: DWORD, dwFirstEntry: DWORD, dwNumEntries: DWORD, lpRawValueArray: PPDH_RAW_COUNTER, data: PPDH_STATISTICS, ) -> PDH_STATUS382 pub fn PdhComputeCounterStatistics( 383 hCounter: PDH_HCOUNTER, 384 dwFormat: DWORD, 385 dwFirstEntry: DWORD, 386 dwNumEntries: DWORD, 387 lpRawValueArray: PPDH_RAW_COUNTER, 388 data: PPDH_STATISTICS, 389 ) -> PDH_STATUS; PdhGetCounterInfoW( hCounter: PDH_HCOUNTER, bRetrieveExplainText: BOOLEAN, pdwBufferSize: LPDWORD, lpBuffer: PPDH_COUNTER_INFO_W, ) -> PDH_STATUS390 pub fn PdhGetCounterInfoW( 391 hCounter: PDH_HCOUNTER, 392 bRetrieveExplainText: BOOLEAN, 393 pdwBufferSize: LPDWORD, 394 lpBuffer: PPDH_COUNTER_INFO_W, 395 ) -> PDH_STATUS; PdhGetCounterInfoA( hCounter: PDH_HCOUNTER, bRetrieveExplainText: BOOLEAN, pdwBufferSize: LPDWORD, lpBuffer: PPDH_COUNTER_INFO_A, ) -> PDH_STATUS396 pub fn PdhGetCounterInfoA( 397 hCounter: PDH_HCOUNTER, 398 bRetrieveExplainText: BOOLEAN, 399 pdwBufferSize: LPDWORD, 400 lpBuffer: PPDH_COUNTER_INFO_A, 401 ) -> PDH_STATUS; PdhSetCounterScaleFactor( hCounter: PDH_HCOUNTER, lFactor: LONG, ) -> PDH_STATUS402 pub fn PdhSetCounterScaleFactor( 403 hCounter: PDH_HCOUNTER, 404 lFactor: LONG, 405 ) -> PDH_STATUS; PdhConnectMachineW( szMachineName: LPCWSTR, ) -> PDH_STATUS406 pub fn PdhConnectMachineW( 407 szMachineName: LPCWSTR, 408 ) -> PDH_STATUS; PdhConnectMachineA( szMachineName: LPCSTR, ) -> PDH_STATUS409 pub fn PdhConnectMachineA( 410 szMachineName: LPCSTR, 411 ) -> PDH_STATUS; PdhEnumMachinesW( szDataSource: LPCWSTR, mszMachineNameList: LPWSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS412 pub fn PdhEnumMachinesW( 413 szDataSource: LPCWSTR, 414 mszMachineNameList: LPWSTR, 415 pcchBufferLength: LPDWORD, 416 ) -> PDH_STATUS; PdhEnumMachinesA( szDataSource: LPCSTR, mszMachineNameList: LPSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS417 pub fn PdhEnumMachinesA( 418 szDataSource: LPCSTR, 419 mszMachineNameList: LPSTR, 420 pcchBufferLength: LPDWORD, 421 ) -> PDH_STATUS; PdhEnumObjectsW( szDataSource: LPCWSTR, szMachineName: LPCWSTR, mszObjectList: LPWSTR, pcchBufferLength: LPDWORD, dwDetailLevel: DWORD, bRefresh: BOOL, ) -> PDH_STATUS422 pub fn PdhEnumObjectsW( 423 szDataSource: LPCWSTR, 424 szMachineName: LPCWSTR, 425 mszObjectList: LPWSTR, 426 pcchBufferLength: LPDWORD, 427 dwDetailLevel: DWORD, 428 bRefresh: BOOL, 429 ) -> PDH_STATUS; PdhEnumObjectsA( szDataSource: LPCSTR, szMachineName: LPCSTR, mszObjectList: LPSTR, pcchBufferLength: LPDWORD, dwDetailLevel: DWORD, bRefresh: BOOL, ) -> PDH_STATUS430 pub fn PdhEnumObjectsA( 431 szDataSource: LPCSTR, 432 szMachineName: LPCSTR, 433 mszObjectList: LPSTR, 434 pcchBufferLength: LPDWORD, 435 dwDetailLevel: DWORD, 436 bRefresh: BOOL, 437 ) -> PDH_STATUS; PdhEnumObjectItemsW( szDataSource: LPCWSTR, szMachineName: LPCWSTR, szObjectName: LPCWSTR, mszCounterList: LPWSTR, pcchCounterListLength: LPDWORD, mszInstanceList: LPWSTR, pcchInstanceListLength: LPDWORD, dwDetailLevel: DWORD, dwFlags: DWORD, ) -> PDH_STATUS438 pub fn PdhEnumObjectItemsW( 439 szDataSource: LPCWSTR, 440 szMachineName: LPCWSTR, 441 szObjectName: LPCWSTR, 442 mszCounterList: LPWSTR, 443 pcchCounterListLength: LPDWORD, 444 mszInstanceList: LPWSTR, 445 pcchInstanceListLength: LPDWORD, 446 dwDetailLevel: DWORD, 447 dwFlags: DWORD, 448 ) -> PDH_STATUS; PdhEnumObjectItemsA( szDataSource: LPCSTR, szMachineName: LPCSTR, szObjectName: LPCSTR, mszCounterList: LPSTR, pcchCounterListLength: LPDWORD, mszInstanceList: LPSTR, pcchInstanceListLength: LPDWORD, dwDetailLevel: DWORD, dwFlags: DWORD, ) -> PDH_STATUS449 pub fn PdhEnumObjectItemsA( 450 szDataSource: LPCSTR, 451 szMachineName: LPCSTR, 452 szObjectName: LPCSTR, 453 mszCounterList: LPSTR, 454 pcchCounterListLength: LPDWORD, 455 mszInstanceList: LPSTR, 456 pcchInstanceListLength: LPDWORD, 457 dwDetailLevel: DWORD, 458 dwFlags: DWORD, 459 ) -> PDH_STATUS; PdhMakeCounterPathW( pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_W, szFullPathBuffer: LPWSTR, pcchBufferSize: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS460 pub fn PdhMakeCounterPathW( 461 pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_W, 462 szFullPathBuffer: LPWSTR, 463 pcchBufferSize: LPDWORD, 464 dwFlags: DWORD, 465 ) -> PDH_STATUS; PdhMakeCounterPathA( pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_A, szFullPathBuffer: LPSTR, pcchBufferSize: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS466 pub fn PdhMakeCounterPathA( 467 pCounterPathElements: PPDH_COUNTER_PATH_ELEMENTS_A, 468 szFullPathBuffer: LPSTR, 469 pcchBufferSize: LPDWORD, 470 dwFlags: DWORD, 471 ) -> PDH_STATUS; PdhParseCounterPathW( szFullPathBuffer: LPCWSTR, pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_W, pcchBufferSize: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS472 pub fn PdhParseCounterPathW( 473 szFullPathBuffer: LPCWSTR, 474 pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_W, 475 pcchBufferSize: LPDWORD, 476 dwFlags: DWORD, 477 ) -> PDH_STATUS; PdhParseCounterPathA( szFullPathBuffer: LPCSTR, pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_A, pcchBufferSize: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS478 pub fn PdhParseCounterPathA( 479 szFullPathBuffer: LPCSTR, 480 pCounterPathElements: *mut PDH_COUNTER_PATH_ELEMENTS_A, 481 pcchBufferSize: LPDWORD, 482 dwFlags: DWORD, 483 ) -> PDH_STATUS; PdhParseInstanceNameW( szInstanceString: LPCWSTR, szInstanceName: LPWSTR, pcchInstanceNameLength: LPDWORD, szParentName: LPWSTR, pcchParentNameLength: LPDWORD, lpIndex: LPDWORD, ) -> PDH_STATUS484 pub fn PdhParseInstanceNameW( 485 szInstanceString: LPCWSTR, 486 szInstanceName: LPWSTR, 487 pcchInstanceNameLength: LPDWORD, 488 szParentName: LPWSTR, 489 pcchParentNameLength: LPDWORD, 490 lpIndex: LPDWORD, 491 ) -> PDH_STATUS; PdhParseInstanceNameA( szInstanceString: LPCSTR, szInstanceName: LPSTR, pcchInstanceNameLength: LPDWORD, szParentName: LPSTR, pcchParentNameLength: LPDWORD, lpIndex: LPDWORD, ) -> PDH_STATUS492 pub fn PdhParseInstanceNameA( 493 szInstanceString: LPCSTR, 494 szInstanceName: LPSTR, 495 pcchInstanceNameLength: LPDWORD, 496 szParentName: LPSTR, 497 pcchParentNameLength: LPDWORD, 498 lpIndex: LPDWORD, 499 ) -> PDH_STATUS; PdhValidatePathW( szFullCounterPath: LPCWSTR, ) -> PDH_STATUS500 pub fn PdhValidatePathW( 501 szFullCounterPath: LPCWSTR, 502 ) -> PDH_STATUS; PdhValidatePathA( szFullCounterPath: LPCSTR, ) -> PDH_STATUS503 pub fn PdhValidatePathA( 504 szFullCounterPath: LPCSTR, 505 ) -> PDH_STATUS; PdhGetDefaultPerfObjectW( szDataSource: LPCWSTR, szMachineName: LPCWSTR, szDefaultObjectName: LPWSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS506 pub fn PdhGetDefaultPerfObjectW( 507 szDataSource: LPCWSTR, 508 szMachineName: LPCWSTR, 509 szDefaultObjectName: LPWSTR, 510 pcchBufferSize: LPDWORD, 511 ) -> PDH_STATUS; PdhGetDefaultPerfObjectA( szDataSource: LPCSTR, szMachineName: LPCSTR, szDefaultObjectName: LPSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS512 pub fn PdhGetDefaultPerfObjectA( 513 szDataSource: LPCSTR, 514 szMachineName: LPCSTR, 515 szDefaultObjectName: LPSTR, 516 pcchBufferSize: LPDWORD, 517 ) -> PDH_STATUS; PdhGetDefaultPerfCounterW( szDataSource: LPCWSTR, szMachineName: LPCWSTR, szObjectName: LPCWSTR, szDefaultCounterName: LPWSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS518 pub fn PdhGetDefaultPerfCounterW( 519 szDataSource: LPCWSTR, 520 szMachineName: LPCWSTR, 521 szObjectName: LPCWSTR, 522 szDefaultCounterName: LPWSTR, 523 pcchBufferSize: LPDWORD, 524 ) -> PDH_STATUS; PdhGetDefaultPerfCounterA( szDataSource: LPCSTR, szMachineName: LPCSTR, szObjectName: LPCSTR, szDefaultCounterName: LPSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS525 pub fn PdhGetDefaultPerfCounterA( 526 szDataSource: LPCSTR, 527 szMachineName: LPCSTR, 528 szObjectName: LPCSTR, 529 szDefaultCounterName: LPSTR, 530 pcchBufferSize: LPDWORD, 531 ) -> PDH_STATUS; PdhBrowseCountersW( pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_W, ) -> PDH_STATUS532 pub fn PdhBrowseCountersW( 533 pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_W, 534 ) -> PDH_STATUS; PdhBrowseCountersA( pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_A, ) -> PDH_STATUS535 pub fn PdhBrowseCountersA( 536 pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_A, 537 ) -> PDH_STATUS; PdhExpandCounterPathW( szWildCardPath: LPCWSTR, mszExpandedPathList: LPWSTR, pcchPathListLength: LPDWORD, ) -> PDH_STATUS538 pub fn PdhExpandCounterPathW( 539 szWildCardPath: LPCWSTR, 540 mszExpandedPathList: LPWSTR, 541 pcchPathListLength: LPDWORD, 542 ) -> PDH_STATUS; PdhExpandCounterPathA( szWildCardPath: LPCSTR, mszExpandedPathList: LPSTR, pcchPathListLength: LPDWORD, ) -> PDH_STATUS543 pub fn PdhExpandCounterPathA( 544 szWildCardPath: LPCSTR, 545 mszExpandedPathList: LPSTR, 546 pcchPathListLength: LPDWORD, 547 ) -> PDH_STATUS; PdhLookupPerfNameByIndexW( szMachineName: LPCWSTR, dwNameIndex: DWORD, szNameBuffer: LPWSTR, pcchNameBufferSize: LPDWORD, ) -> PDH_STATUS548 pub fn PdhLookupPerfNameByIndexW( 549 szMachineName: LPCWSTR, 550 dwNameIndex: DWORD, 551 szNameBuffer: LPWSTR, 552 pcchNameBufferSize: LPDWORD, 553 ) -> PDH_STATUS; PdhLookupPerfNameByIndexA( szMachineName: LPCSTR, dwNameIndex: DWORD, szNameBuffer: LPSTR, pcchNameBufferSize: LPDWORD, ) -> PDH_STATUS554 pub fn PdhLookupPerfNameByIndexA( 555 szMachineName: LPCSTR, 556 dwNameIndex: DWORD, 557 szNameBuffer: LPSTR, 558 pcchNameBufferSize: LPDWORD, 559 ) -> PDH_STATUS; PdhLookupPerfIndexByNameW( szMachineName: LPCWSTR, szNameBuffer: LPCWSTR, pdwIndex: LPDWORD, ) -> PDH_STATUS560 pub fn PdhLookupPerfIndexByNameW( 561 szMachineName: LPCWSTR, 562 szNameBuffer: LPCWSTR, 563 pdwIndex: LPDWORD, 564 ) -> PDH_STATUS; PdhLookupPerfIndexByNameA( szMachineName: LPCSTR, szNameBuffer: LPCSTR, pdwIndex: LPDWORD, ) -> PDH_STATUS565 pub fn PdhLookupPerfIndexByNameA( 566 szMachineName: LPCSTR, 567 szNameBuffer: LPCSTR, 568 pdwIndex: LPDWORD, 569 ) -> PDH_STATUS; PdhExpandWildCardPathW( szDataSource: LPCWSTR, szWildCardPath: LPCWSTR, mszExpandedPathList: LPWSTR, pcchPathListLength: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS570 pub fn PdhExpandWildCardPathW( 571 szDataSource: LPCWSTR, 572 szWildCardPath: LPCWSTR, 573 mszExpandedPathList: LPWSTR, 574 pcchPathListLength: LPDWORD, 575 dwFlags: DWORD, 576 ) -> PDH_STATUS; PdhExpandWildCardPathA( szDataSource: LPCSTR, szWildCardPath: LPCSTR, mszExpandedPathList: LPSTR, pcchPathListLength: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS577 pub fn PdhExpandWildCardPathA( 578 szDataSource: LPCSTR, 579 szWildCardPath: LPCSTR, 580 mszExpandedPathList: LPSTR, 581 pcchPathListLength: LPDWORD, 582 dwFlags: DWORD, 583 ) -> PDH_STATUS; PdhOpenLogW( szLogFileName: LPCWSTR, dwAccessFlags: DWORD, lpdwLogType: LPDWORD, hQuery: PDH_HQUERY, dwMaxSize: DWORD, szUserCaption: LPCWSTR, phLog: *mut PDH_HLOG, ) -> PDH_STATUS584 pub fn PdhOpenLogW( 585 szLogFileName: LPCWSTR, 586 dwAccessFlags: DWORD, 587 lpdwLogType: LPDWORD, 588 hQuery: PDH_HQUERY, 589 dwMaxSize: DWORD, 590 szUserCaption: LPCWSTR, 591 phLog: *mut PDH_HLOG, 592 ) -> PDH_STATUS; PdhOpenLogA( szLogFileName: LPCSTR, dwAccessFlags: DWORD, lpdwLogType: LPDWORD, hQuery: PDH_HQUERY, dwMaxSize: DWORD, szUserCaption: LPCSTR, phLog: *mut PDH_HLOG, ) -> PDH_STATUS593 pub fn PdhOpenLogA( 594 szLogFileName: LPCSTR, 595 dwAccessFlags: DWORD, 596 lpdwLogType: LPDWORD, 597 hQuery: PDH_HQUERY, 598 dwMaxSize: DWORD, 599 szUserCaption: LPCSTR, 600 phLog: *mut PDH_HLOG, 601 ) -> PDH_STATUS; PdhUpdateLogW( hLog: PDH_HLOG, szUserString: LPCWSTR, ) -> PDH_STATUS602 pub fn PdhUpdateLogW( 603 hLog: PDH_HLOG, 604 szUserString: LPCWSTR, 605 ) -> PDH_STATUS; PdhUpdateLogA( hLog: PDH_HLOG, szUserString: LPCSTR, ) -> PDH_STATUS606 pub fn PdhUpdateLogA( 607 hLog: PDH_HLOG, 608 szUserString: LPCSTR, 609 ) -> PDH_STATUS; PdhUpdateLogFileCatalog( hLog: PDH_HLOG, ) -> PDH_STATUS610 pub fn PdhUpdateLogFileCatalog( 611 hLog: PDH_HLOG, 612 ) -> PDH_STATUS; PdhGetLogFileSize( hLog: PDH_HLOG, llSize: *mut LONGLONG, ) -> PDH_STATUS613 pub fn PdhGetLogFileSize( 614 hLog: PDH_HLOG, 615 llSize: *mut LONGLONG, 616 ) -> PDH_STATUS; PdhCloseLog( hLog: PDH_HLOG, dwFlags: DWORD, ) -> PDH_STATUS617 pub fn PdhCloseLog( 618 hLog: PDH_HLOG, 619 dwFlags: DWORD, 620 ) -> PDH_STATUS; PdhSelectDataSourceW( hWndOwner: HWND, dwFlags: DWORD, szDataSource: LPWSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS621 pub fn PdhSelectDataSourceW( 622 hWndOwner: HWND, 623 dwFlags: DWORD, 624 szDataSource: LPWSTR, 625 pcchBufferLength: LPDWORD, 626 ) -> PDH_STATUS; PdhSelectDataSourceA( hWndOwner: HWND, dwFlags: DWORD, szDataSource: LPSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS627 pub fn PdhSelectDataSourceA( 628 hWndOwner: HWND, 629 dwFlags: DWORD, 630 szDataSource: LPSTR, 631 pcchBufferLength: LPDWORD, 632 ) -> PDH_STATUS; PdhIsRealTimeQuery( hQuery: PDH_HQUERY, ) -> PDH_STATUS633 pub fn PdhIsRealTimeQuery( 634 hQuery: PDH_HQUERY, 635 ) -> PDH_STATUS; PdhSetQueryTimeRange( hQuery: PDH_HQUERY, pInfo: PPDH_TIME_INFO, ) -> PDH_STATUS636 pub fn PdhSetQueryTimeRange( 637 hQuery: PDH_HQUERY, 638 pInfo: PPDH_TIME_INFO, 639 ) -> PDH_STATUS; PdhGetDataSourceTimeRangeW( szDataSource: LPCWSTR, pdwNumEntries: LPDWORD, pInfo: PPDH_TIME_INFO, pdwBufferSize: LPDWORD, ) -> PDH_STATUS640 pub fn PdhGetDataSourceTimeRangeW( 641 szDataSource: LPCWSTR, 642 pdwNumEntries: LPDWORD, 643 pInfo: PPDH_TIME_INFO, 644 pdwBufferSize: LPDWORD, 645 ) -> PDH_STATUS; PdhGetDataSourceTimeRangeA( szDataSource: LPCSTR, pdwNumEntries: LPDWORD, pInfo: PPDH_TIME_INFO, pdwBufferSize: LPDWORD, ) -> PDH_STATUS646 pub fn PdhGetDataSourceTimeRangeA( 647 szDataSource: LPCSTR, 648 pdwNumEntries: LPDWORD, 649 pInfo: PPDH_TIME_INFO, 650 pdwBufferSize: LPDWORD, 651 ) -> PDH_STATUS; PdhCollectQueryDataEx( hQuery: PDH_HQUERY, dwIntervalTime: DWORD, hNewDataEvent: HANDLE, ) -> PDH_STATUS652 pub fn PdhCollectQueryDataEx( 653 hQuery: PDH_HQUERY, 654 dwIntervalTime: DWORD, 655 hNewDataEvent: HANDLE, 656 ) -> PDH_STATUS; PdhFormatFromRawValue( dwCounterType: DWORD, dwFormat: DWORD, pTimeBase: *mut LONGLONG, rawValue1: PPDH_RAW_COUNTER, rawValue2: PPDH_RAW_COUNTER, fmtValue: PPDH_FMT_COUNTERVALUE, ) -> PDH_STATUS657 pub fn PdhFormatFromRawValue( 658 dwCounterType: DWORD, 659 dwFormat: DWORD, 660 pTimeBase: *mut LONGLONG, 661 rawValue1: PPDH_RAW_COUNTER, 662 rawValue2: PPDH_RAW_COUNTER, 663 fmtValue: PPDH_FMT_COUNTERVALUE, 664 ) -> PDH_STATUS; PdhGetCounterTimeBase( hCounter: PDH_HCOUNTER, pTimeBase: *mut LONGLONG, ) -> PDH_STATUS665 pub fn PdhGetCounterTimeBase( 666 hCounter: PDH_HCOUNTER, 667 pTimeBase: *mut LONGLONG, 668 ) -> PDH_STATUS; PdhReadRawLogRecord( hLog: PDH_HLOG, ftRecord: FILETIME, pRawLogRecord: PPDH_RAW_LOG_RECORD, pdwBufferLength: LPDWORD, ) -> PDH_STATUS669 pub fn PdhReadRawLogRecord( 670 hLog: PDH_HLOG, 671 ftRecord: FILETIME, 672 pRawLogRecord: PPDH_RAW_LOG_RECORD, 673 pdwBufferLength: LPDWORD, 674 ) -> PDH_STATUS; PdhSetDefaultRealTimeDataSource( dwDataSourceId: DWORD, ) -> PDH_STATUS675 pub fn PdhSetDefaultRealTimeDataSource( 676 dwDataSourceId: DWORD, 677 ) -> PDH_STATUS; PdhBindInputDataSourceW( phDataSource: *mut PDH_HLOG, szLogFileNameList: LPCWSTR, ) -> PDH_STATUS678 pub fn PdhBindInputDataSourceW( 679 phDataSource: *mut PDH_HLOG, 680 szLogFileNameList: LPCWSTR, 681 ) -> PDH_STATUS; PdhBindInputDataSourceA( phDataSource: *mut PDH_HLOG, szLogFileNameList: LPCSTR, ) -> PDH_STATUS682 pub fn PdhBindInputDataSourceA( 683 phDataSource: *mut PDH_HLOG, 684 szLogFileNameList: LPCSTR, 685 ) -> PDH_STATUS; PdhOpenQueryH( hDataSource: PDH_HLOG, dwUserData: DWORD_PTR, phQuery: *mut PDH_HQUERY, ) -> PDH_STATUS686 pub fn PdhOpenQueryH( 687 hDataSource: PDH_HLOG, 688 dwUserData: DWORD_PTR, 689 phQuery: *mut PDH_HQUERY, 690 ) -> PDH_STATUS; PdhEnumMachinesHW( hDataSource: PDH_HLOG, mszMachineNameList: LPWSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS691 pub fn PdhEnumMachinesHW( 692 hDataSource: PDH_HLOG, 693 mszMachineNameList: LPWSTR, 694 pcchBufferLength: LPDWORD, 695 ) -> PDH_STATUS; PdhEnumMachinesHA( hDataSource: PDH_HLOG, mszMachineNameList: LPSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS696 pub fn PdhEnumMachinesHA( 697 hDataSource: PDH_HLOG, 698 mszMachineNameList: LPSTR, 699 pcchBufferLength: LPDWORD, 700 ) -> PDH_STATUS; PdhEnumObjectsHW( hDataSource: PDH_HLOG, szMachineName: LPCWSTR, mszObjectList: LPWSTR, pcchBufferLength: LPDWORD, dwDetailLevel: DWORD, bRefresh: BOOL, ) -> PDH_STATUS701 pub fn PdhEnumObjectsHW( 702 hDataSource: PDH_HLOG, 703 szMachineName: LPCWSTR, 704 mszObjectList: LPWSTR, 705 pcchBufferLength: LPDWORD, 706 dwDetailLevel: DWORD, 707 bRefresh: BOOL, 708 ) -> PDH_STATUS; PdhEnumObjectsHA( hDataSource: PDH_HLOG, szMachineName: LPCSTR, mszObjectList: LPSTR, pcchBufferLength: LPDWORD, dwDetailLevel: DWORD, bRefresh: BOOL, ) -> PDH_STATUS709 pub fn PdhEnumObjectsHA( 710 hDataSource: PDH_HLOG, 711 szMachineName: LPCSTR, 712 mszObjectList: LPSTR, 713 pcchBufferLength: LPDWORD, 714 dwDetailLevel: DWORD, 715 bRefresh: BOOL, 716 ) -> PDH_STATUS; PdhEnumObjectItemsHW( hDataSource: PDH_HLOG, szMachineName: LPCWSTR, szObjectName: LPCWSTR, mszCounterList: LPWSTR, pcchCounterListLength: LPDWORD, mszInstanceList: LPWSTR, pcchInstanceListLength: LPDWORD, dwDetailLevel: DWORD, dwFlags: DWORD, ) -> PDH_STATUS717 pub fn PdhEnumObjectItemsHW( 718 hDataSource: PDH_HLOG, 719 szMachineName: LPCWSTR, 720 szObjectName: LPCWSTR, 721 mszCounterList: LPWSTR, 722 pcchCounterListLength: LPDWORD, 723 mszInstanceList: LPWSTR, 724 pcchInstanceListLength: LPDWORD, 725 dwDetailLevel: DWORD, 726 dwFlags: DWORD, 727 ) -> PDH_STATUS; PdhEnumObjectItemsHA( hDataSource: PDH_HLOG, szMachineName: LPCSTR, szObjectName: LPCSTR, mszCounterList: LPSTR, pcchCounterListLength: LPDWORD, mszInstanceList: LPSTR, pcchInstanceListLength: LPDWORD, dwDetailLevel: DWORD, dwFlags: DWORD, ) -> PDH_STATUS728 pub fn PdhEnumObjectItemsHA( 729 hDataSource: PDH_HLOG, 730 szMachineName: LPCSTR, 731 szObjectName: LPCSTR, 732 mszCounterList: LPSTR, 733 pcchCounterListLength: LPDWORD, 734 mszInstanceList: LPSTR, 735 pcchInstanceListLength: LPDWORD, 736 dwDetailLevel: DWORD, 737 dwFlags: DWORD, 738 ) -> PDH_STATUS; PdhExpandWildCardPathHW( hDataSource: PDH_HLOG, szWildCardPath: LPCWSTR, mszExpandedPathList: LPWSTR, pcchPathListLength: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS739 pub fn PdhExpandWildCardPathHW( 740 hDataSource: PDH_HLOG, 741 szWildCardPath: LPCWSTR, 742 mszExpandedPathList: LPWSTR, 743 pcchPathListLength: LPDWORD, 744 dwFlags: DWORD, 745 ) -> PDH_STATUS; PdhExpandWildCardPathHA( hDataSource: PDH_HLOG, szWildCardPath: LPCSTR, mszExpandedPathList: LPSTR, pcchPathListLength: LPDWORD, dwFlags: DWORD, ) -> PDH_STATUS746 pub fn PdhExpandWildCardPathHA( 747 hDataSource: PDH_HLOG, 748 szWildCardPath: LPCSTR, 749 mszExpandedPathList: LPSTR, 750 pcchPathListLength: LPDWORD, 751 dwFlags: DWORD, 752 ) -> PDH_STATUS; PdhGetDataSourceTimeRangeH( hDataSource: PDH_HLOG, pdwNumEntries: LPDWORD, pInfo: PPDH_TIME_INFO, pdwBufferSize: LPDWORD, ) -> PDH_STATUS753 pub fn PdhGetDataSourceTimeRangeH( 754 hDataSource: PDH_HLOG, 755 pdwNumEntries: LPDWORD, 756 pInfo: PPDH_TIME_INFO, 757 pdwBufferSize: LPDWORD, 758 ) -> PDH_STATUS; PdhGetDefaultPerfObjectHW( hDataSource: PDH_HLOG, szMachineName: LPCWSTR, szDefaultObjectName: LPWSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS759 pub fn PdhGetDefaultPerfObjectHW( 760 hDataSource: PDH_HLOG, 761 szMachineName: LPCWSTR, 762 szDefaultObjectName: LPWSTR, 763 pcchBufferSize: LPDWORD, 764 ) -> PDH_STATUS; PdhGetDefaultPerfObjectHA( hDataSource: PDH_HLOG, szMachineName: LPCSTR, szDefaultObjectName: LPSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS765 pub fn PdhGetDefaultPerfObjectHA( 766 hDataSource: PDH_HLOG, 767 szMachineName: LPCSTR, 768 szDefaultObjectName: LPSTR, 769 pcchBufferSize: LPDWORD, 770 ) -> PDH_STATUS; PdhGetDefaultPerfCounterHW( hDataSource: PDH_HLOG, szMachineName: LPCWSTR, szObjectName: LPCWSTR, szDefaultCounterName: LPWSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS771 pub fn PdhGetDefaultPerfCounterHW( 772 hDataSource: PDH_HLOG, 773 szMachineName: LPCWSTR, 774 szObjectName: LPCWSTR, 775 szDefaultCounterName: LPWSTR, 776 pcchBufferSize: LPDWORD, 777 ) -> PDH_STATUS; PdhGetDefaultPerfCounterHA( hDataSource: PDH_HLOG, szMachineName: LPCSTR, szObjectName: LPCSTR, szDefaultCounterName: LPSTR, pcchBufferSize: LPDWORD, ) -> PDH_STATUS778 pub fn PdhGetDefaultPerfCounterHA( 779 hDataSource: PDH_HLOG, 780 szMachineName: LPCSTR, 781 szObjectName: LPCSTR, 782 szDefaultCounterName: LPSTR, 783 pcchBufferSize: LPDWORD, 784 ) -> PDH_STATUS; PdhBrowseCountersHW( pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HW, ) -> PDH_STATUS785 pub fn PdhBrowseCountersHW( 786 pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HW, 787 ) -> PDH_STATUS; PdhBrowseCountersHA( pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HA, ) -> PDH_STATUS788 pub fn PdhBrowseCountersHA( 789 pBrowseDlgData: PPDH_BROWSE_DLG_CONFIG_HA, 790 ) -> PDH_STATUS; PdhEnumLogSetNamesW( szDataSource: LPCWSTR, mszLogSetNameList: LPWSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS791 pub fn PdhEnumLogSetNamesW( 792 szDataSource: LPCWSTR, 793 mszLogSetNameList: LPWSTR, 794 pcchBufferLength: LPDWORD, 795 ) -> PDH_STATUS; PdhEnumLogSetNamesA( szDataSource: LPCSTR, mszLogSetNameList: LPSTR, pcchBufferLength: LPDWORD, ) -> PDH_STATUS796 pub fn PdhEnumLogSetNamesA( 797 szDataSource: LPCSTR, 798 mszLogSetNameList: LPSTR, 799 pcchBufferLength: LPDWORD, 800 ) -> PDH_STATUS; 801 } 802 // pub fn PdhVerifySQLDBW() -> PDH_STATUS; 803 // pub fn PdhVerifySQLDBA() -> PDH_STATUS; 804 // pub fn PdhCreateSQLTablesW() -> PDH_STATUS; 805 // pub fn PdhCreateSQLTablesA() -> PDH_STATUS; 806 //pub fn PdhGetLogSetGUID() -> PDH_STATUS; 807 // pub fn PdhSetLogSetRunID() -> PDH_STATUS; 808