/*++ 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 // for public PDH data types #include // 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_