577 lines
13 KiB
C++
577 lines
13 KiB
C++
/*===================================================================
|
|
Microsoft Denali
|
|
|
|
Microsoft Confidential.
|
|
Copyright 1996 Microsoft Corporation. All Rights Reserved.
|
|
|
|
Component: Main
|
|
|
|
File: axpfdata.cpp
|
|
|
|
Owner: LeiJin
|
|
|
|
Abstract:
|
|
|
|
Define the data structures used by the Performance Monitor data for the Denali Objects.
|
|
Also include shared memory functions used by both perfmon dll and denali dll.
|
|
===================================================================*/
|
|
|
|
|
|
//-------------------------------------------------------------------------------------
|
|
// Include Files
|
|
//
|
|
//-------------------------------------------------------------------------------------
|
|
#include "denpre.h"
|
|
#pragma hdrstop
|
|
#include "windows.h"
|
|
#include "winperf.h"
|
|
|
|
#include "axctrnm.h"
|
|
#include "axpfdata.h"
|
|
#include <perfutil.h>
|
|
|
|
//-------------------------------------------------------------------------------------
|
|
// Constant structure initializations
|
|
// defined in ActiveXPerfData.h
|
|
//-------------------------------------------------------------------------------------
|
|
|
|
AXPD g_AxDataDefinition = {
|
|
{
|
|
QWORD_MULTIPLE(sizeof(AXPD) + SIZE_OF_AX_PERF_DATA),
|
|
sizeof(AXPD),
|
|
sizeof(PERF_OBJECT_TYPE),
|
|
AXSOBJ,
|
|
0,
|
|
AXSOBJ,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
(sizeof(AXPD) - sizeof(PERF_OBJECT_TYPE))/
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
0,
|
|
-1,
|
|
0,
|
|
1, // NOTE: PerfTime ?
|
|
1, // NOTE: PerfFreq ?
|
|
},
|
|
{ // Counters[]
|
|
|
|
// DEBUGDOCREQ
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
DEBUGDOCREQ,
|
|
0,
|
|
DEBUGDOCREQ,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_DEBUGDOCREQ_OFFSET
|
|
},
|
|
|
|
// REQERRRUNTIME
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQERRRUNTIME,
|
|
0,
|
|
REQERRRUNTIME,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQERRRUNTIME_OFFSET
|
|
},
|
|
|
|
// REQERRPREPROC
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQERRPREPROC,
|
|
0,
|
|
REQERRPREPROC,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQERRPREPROC_OFFSET
|
|
},
|
|
|
|
// REQERRCOMPILE
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQERRCOMPILE,
|
|
0,
|
|
REQERRCOMPILE,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQERRCOMPILE_OFFSET
|
|
},
|
|
|
|
// REQERRORPERSEC
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQERRORPERSEC,
|
|
0,
|
|
REQERRORPERSEC,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_COUNTER,
|
|
sizeof(DWORD),
|
|
AX_REQERRORPERSEC_OFFSET
|
|
},
|
|
|
|
// REQTOTALBYTEIN
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQTOTALBYTEIN,
|
|
0,
|
|
REQTOTALBYTEIN,
|
|
0,
|
|
-4,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQTOTALBYTEIN_OFFSET
|
|
},
|
|
|
|
// REQTOTALBYTEOUT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQTOTALBYTEOUT,
|
|
0,
|
|
REQTOTALBYTEOUT,
|
|
0,
|
|
-4,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQTOTALBYTEOUT_OFFSET
|
|
},
|
|
|
|
// REQEXECTIME
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQEXECTIME,
|
|
0,
|
|
REQEXECTIME,
|
|
0,
|
|
-3,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQEXECTIME_OFFSET
|
|
},
|
|
|
|
// REQWAITTIME
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQWAITTIME,
|
|
0,
|
|
REQWAITTIME,
|
|
0,
|
|
-3,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQWAITTIME_OFFSET
|
|
},
|
|
|
|
// REQCOMFAILED
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQCOMFAILED,
|
|
0,
|
|
REQCOMFAILED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQCOMFAILED_OFFSET
|
|
},
|
|
|
|
// REQBROWSEREXEC
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQBROWSEREXEC,
|
|
0,
|
|
REQBROWSEREXEC,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQBROWSEREXEC_OFFSET
|
|
},
|
|
|
|
// REQFAILED
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQFAILED,
|
|
0,
|
|
REQFAILED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQFAILED_OFFSET
|
|
},
|
|
|
|
// REQNOTAUTH
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQNOTAUTH,
|
|
0,
|
|
REQNOTAUTH,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQNOTAUTH_OFFSET
|
|
},
|
|
|
|
// REQNOTFOUND
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQNOTFOUND,
|
|
0,
|
|
REQNOTFOUND,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQNOTFOUND_OFFSET
|
|
},
|
|
|
|
// REQCURRENT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQCURRENT,
|
|
0,
|
|
REQCURRENT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQCURRENT_OFFSET
|
|
},
|
|
|
|
// REQREJECTED
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQREJECTED,
|
|
0,
|
|
REQREJECTED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQREJECTED_OFFSET
|
|
},
|
|
|
|
// REQSUCCEEDED
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQSUCCEEDED,
|
|
0,
|
|
REQSUCCEEDED,
|
|
0,
|
|
-1,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQSUCCEEDED_OFFSET
|
|
},
|
|
|
|
// REQTIMEOUT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQTIMEOUT,
|
|
0,
|
|
REQTIMEOUT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQTIMEOUT_OFFSET
|
|
},
|
|
|
|
// REQTOTAL
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQTOTAL,
|
|
0,
|
|
REQTOTAL,
|
|
0,
|
|
-1,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_REQTOTAL_OFFSET
|
|
},
|
|
|
|
// REQPERSEC
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
REQPERSEC,
|
|
0,
|
|
REQPERSEC,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_COUNTER,
|
|
sizeof(DWORD),
|
|
AX_REQPERSEC_OFFSET
|
|
},
|
|
|
|
// SCRIPTFREEENG
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
SCRIPTFREEENG,
|
|
0,
|
|
SCRIPTFREEENG,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_SCRIPTFREEENG_OFFSET
|
|
},
|
|
|
|
// SESSIONLIFETIME
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
SESSIONLIFETIME,
|
|
0,
|
|
SESSIONLIFETIME,
|
|
0,
|
|
3,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_SESSIONLIFETIME_OFFSET
|
|
},
|
|
|
|
// SESSIONCURRENT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
SESSIONCURRENT,
|
|
0,
|
|
SESSIONCURRENT,
|
|
0,
|
|
-1,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_SESSIONCURRENT_OFFSET
|
|
},
|
|
|
|
// SESSIONTIMEOUT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
SESSIONTIMEOUT,
|
|
0,
|
|
SESSIONTIMEOUT,
|
|
0,
|
|
-1,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_SESSIONTIMEOUT_OFFSET
|
|
},
|
|
|
|
// SESSIONSTOTAL
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
SESSIONSTOTAL,
|
|
0,
|
|
SESSIONSTOTAL,
|
|
0,
|
|
-1,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_SESSIONSTOTAL_OFFSET
|
|
},
|
|
|
|
// TEMPLCACHE
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TEMPLCACHE,
|
|
0,
|
|
TEMPLCACHE,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TEMPLCACHE_OFFSET
|
|
},
|
|
|
|
// TEMPLCACHEHITS
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TEMPLCACHEHITS,
|
|
0,
|
|
TEMPLCACHEHITS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_RAW_FRACTION,
|
|
sizeof(DWORD),
|
|
AX_TEMPLCACHEHITS_OFFSET
|
|
},
|
|
|
|
// TEMPLCACHETRYS
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TEMPLCACHETRYS,
|
|
0,
|
|
TEMPLCACHETRYS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_RAW_BASE,
|
|
sizeof(DWORD),
|
|
AX_TEMPLCACHETRYS_OFFSET
|
|
},
|
|
|
|
// TEMPLFLUSHES
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TEMPLFLUSHES,
|
|
0,
|
|
TEMPLFLUSHES,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TEMPLFLUSHES_OFFSET
|
|
},
|
|
|
|
// TRANSABORTED
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TRANSABORTED,
|
|
0,
|
|
TRANSABORTED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TRANSABORTED_OFFSET
|
|
},
|
|
|
|
// TRANSCOMMIT
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TRANSCOMMIT,
|
|
0,
|
|
TRANSCOMMIT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TRANSCOMMIT_OFFSET
|
|
},
|
|
|
|
// TRANSPENDING
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TRANSPENDING,
|
|
0,
|
|
TRANSPENDING,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TRANSPENDING_OFFSET
|
|
},
|
|
|
|
// TRANSTOTAL
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TRANSTOTAL,
|
|
0,
|
|
TRANSTOTAL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_TRANSTOTAL_OFFSET
|
|
},
|
|
|
|
// TRANSPERSEC
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
TRANSPERSEC,
|
|
0,
|
|
TRANSPERSEC,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_COUNTER,
|
|
sizeof(DWORD),
|
|
AX_TRANSPERSEC_OFFSET
|
|
},
|
|
|
|
// MEMORYTEMPLCACHE
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
MEMORYTEMPLCACHE,
|
|
0,
|
|
MEMORYTEMPLCACHE,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_COUNTER_RAWCOUNT,
|
|
sizeof(DWORD),
|
|
AX_MEMORYTEMPLCACHE_OFFSET
|
|
},
|
|
|
|
// MEMORYTEMPLCACHEHITS
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
MEMORYTEMPLCACHEHITS,
|
|
0,
|
|
MEMORYTEMPLCACHEHITS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_RAW_FRACTION,
|
|
sizeof(DWORD),
|
|
AX_MEMORYTEMPLCACHEHITS_OFFSET
|
|
},
|
|
// MEMORYTEMPLCACHETRYS
|
|
{
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
MEMORYTEMPLCACHETRYS,
|
|
0,
|
|
MEMORYTEMPLCACHETRYS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_NOVICE,
|
|
PERF_RAW_BASE,
|
|
sizeof(DWORD),
|
|
AX_MEMORYTEMPLCACHETRYS_OFFSET
|
|
}
|
|
|
|
} // Counters[]
|
|
};
|