|
|
/*++
Copyright (C) 1995-1999 Microsoft Corporation
Module Name:
pdhicalc.h
Abstract:
calculation functions for the Data Provider Helper.
--*/
#ifndef _PDHICALC_H_
#define _PDHICALC_H_
#include <pdh.h> // for public PDH data types
#include <winperf.h> // for perf counter type constants
#if defined(__cplusplus)
#define LINK_SPEC extern "C"
#else
#define LINK_SPEC
#endif
// special perf counter type used by text log files
// value is stored as a double precision floating point value
#define PERF_DOUBLE_RAW (PERF_SIZE_DWORD | 0x00002000 | PERF_TYPE_NUMBER | PERF_NUMBER_DECIMAL)
typedef double (APIENTRY COUNTERCALC) (PPDH_RAW_COUNTER, PPDH_RAW_COUNTER, LONGLONG *, LPDWORD); typedef double (APIENTRY * LPCOUNTERCALC) (PPDH_RAW_COUNTER, PPDH_RAW_COUNTER, LONGLONG *, LPDWORD);
typedef PDH_STATUS (APIENTRY COUNTERSTAT) (LPVOID, DWORD, DWORD, DWORD, PPDH_RAW_COUNTER, PPDH_STATISTICS); typedef PDH_STATUS (APIENTRY * LPCOUNTERSTAT) (LPVOID, DWORD, DWORD, DWORD, PPDH_RAW_COUNTER, PPDH_STATISTICS);
// calc functions
extern COUNTERCALC PdhiCalcDouble; extern COUNTERCALC PdhiCalcAverage; extern COUNTERCALC PdhiCalcElapsedTime; extern COUNTERCALC PdhiCalcRawFraction; extern COUNTERCALC PdhiCalcCounter; extern COUNTERCALC PdhiCalcTimer; extern COUNTERCALC PdhiCalcInverseTimer; extern COUNTERCALC PdhiCalcRawCounter; extern COUNTERCALC PdhiCalcNoData; extern COUNTERCALC PdhiCalcDelta;
// status functions
extern COUNTERSTAT PdhiComputeFirstLastStats; extern COUNTERSTAT PdhiComputeRawCountStats; extern COUNTERSTAT PdhiComputeNoDataStats;
LINK_SPEC PDH_STATUS PdhiComputeFormattedValue( IN LPCOUNTERCALC pCalcFunc, IN DWORD dwCounterType, IN LONG lScale, IN DWORD dwFormat, IN PPDH_RAW_COUNTER pRawValue1, IN PPDH_RAW_COUNTER pRawValue2, IN PLONGLONG pTimeBase, IN DWORD dwReserved, IN OUT PPDH_FMT_COUNTERVALUE fmtValue );
LINK_SPEC BOOL AssignCalcFunction( IN DWORD dwCounterType, IN LPCOUNTERCALC * pCalcFunc, IN LPCOUNTERSTAT * pStatFunc );
#endif // _PDHICALC_H_
|