Performance Counters Functions
Use the following functions to consume and provide performance data.
Consumer functions
Performance Data Helper (PDH) functions
Use the Performance Data Helper (PDH) functions to consume performance data from both V1 and V2 performance data providers.
Note
Windows OneCore apps cannot use the PDH functions. If you are writing Windows OneCore apps, use PerfLib V2 Consumer functions.
- CounterPathCallBack
- PdhAddCounter
- PdhAddEnglishCounter
- PdhBindInputDataSource
- PdhBrowseCounters
- PdhBrowseCountersH
- PdhCalculateCounterFromRawValue
- PdhCloseLog
- PdhCloseQuery
- PdhCollectQueryData
- PdhCollectQueryDataEx
- PdhCollectQueryDataWithTime
- PdhComputeCounterStatistics
- PdhConnectMachine
- PdhEnumLogSetNames
- PdhEnumMachines
- PdhEnumMachinesH
- PdhEnumObjectItems
- PdhEnumObjectItemsH
- PdhEnumObjects
- PdhEnumObjectsH
- PdhExpandCounterPath
- PdhExpandWildCardPath
- PdhExpandWildCardPathH
- PdhFormatFromRawValue
- PdhGetCounterInfo
- PdhGetCounterTimeBase
- PdhGetDataSourceTimeRange
- PdhGetDataSourceTimeRangeH
- PdhGetDefaultPerfCounter
- PdhGetDefaultPerfCounterH
- PdhGetDefaultPerfObject
- PdhGetDefaultPerfObjectH
- PdhGetDllVersion
- PdhGetFormattedCounterArray
- PdhGetFormattedCounterValue
- PdhGetLogFileSize
- PdhGetRawCounterArray
- PdhGetRawCounterValue
- PdhIsRealTimeQuery
- PdhLookupPerfIndexByName
- PdhLookupPerfNameByIndex
- PdhMakeCounterPath
- PdhOpenLog
- PdhOpenQuery
- PdhOpenQueryH
- PdhParseCounterPath
- PdhParseInstanceName
- PdhReadRawLogRecord
- PdhRemoveCounter
- PdhSelectDataSource
- PdhSetCounterScaleFactor
- PdhSetDefaultRealTimeDataSource
- PdhSetQueryTimeRange
- PdhUpdateLog
- PdhUpdateLogFileCatalog
- PdhValidatePath
- PdhValidatePathEx
PerfLib V2 Consumer functions
Use the PerfLib V2 Consumer functions to consume performance data from V2 performance data providers if you cannot use the Performance Data Helper (PDH) functions. These functions might be used when writing OneCore applications to collect V2 countersets or when you need to collect specific V2 countersets with minimal dependencies and overhead.
Tip
The PerfLib V2 Consumer functions are harder to use than the Performance Data Helper (PDH) functions and only support collecting data from V2 providers. The PDH functions should be preferred for most applications.
- PerfAddCounters
- PerfCloseQueryHandle
- PerfDeleteCounters
- PerfEnumerateCounterSet
- PerfEnumerateCounterSetInstances
- PerfOpenQueryHandle
- PerfQueryCounterData
- PerfQueryCounterInfo
- PerfQueryCounterSetRegistrationInfo
Provider functions
PerfLib V2 Provider functions
V2 performance data providers use the following functions:
- AllocateMemory
- ControlCallback
- CounterCleanup
- CounterInitialize
- FreeMemory
- PerfCreateInstance
- PerfDecrementULongCounterValue
- PerfDecrementULongLongCounterValue
- PerfDeleteInstance
- PerfIncrementULongCounterValue
- PerfIncrementULongLongCounterValue
- PerfQueryInstance
- PerfSetCounterSetInfo
- PerfSetULongCounterValue
- PerfSetULongLongCounterValue
- PerfSetCounterRefValue
- PerfStartProvider
- PerfStartProviderEx
- PerfStopProvider
Note
To install and uninstall V2 providers, use the lodctr and unlodctr tools. The LoadPerfCounterTextStrings and UnloadPerfCounterTextStrings functions cannot be used to install and uninstall V2 providers.
Performance DLL functions
V1 performance data providers implement a DLL that provides the following functions:
Note
Due to significant performance and reliability issues, V1 performance data providers are deprecated. Although you still can use a performance extension DLL to provide counter data, you are encouraged to create a V2 provider instead. You also are encouraged to replace existing V1 providers with V2 providers.
V1 providers can be installed and uninstalled using the lodctr and unlodctr tools or by calling the following functions: