📄 monshare.h
字号:
// --monshare.h-----------------------------------------------------------------
//
// Header file containing the definition of the performance monitoring shared
// memory structure. The shared memory is used to communicate between the
// monitored object side and the performance DLL called by the NT Performance
// Monitor.
//
// Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
// -----------------------------------------------------------------------------
#if !defined(_MONSHARE_H)
#define _MONSHARE_H
//
// Mapping and Mutex Object Names
//
// NOTE: "" and L"" versions must be the same!!!
#define MON_MAPPING_NAME_TEMPLATE "MS Exchange SDK PerfMon Mapping %s"
#define MON_MAPPING_NAME_TEMPLATE_W L"MS Exchange SDK PerfMon Mapping %s"
#define MON_MUTEX_NAME_TEMPLATE "MS Exchange SDK PerfMon Mutex %s"
#define MON_MUTEX_NAME_TEMPLATE_W L"MS Exchange SDK PerfMon Mutex %s"
//
// Defined Constants
//
// MON_SHARED_MEMORY_SIGNATURE identifies the shared memory section as an
// Exchange SDK performance monitoring shared memory communication block.
// This constant should be incremented when the structure of the shared
// memory section is changed to catch version mismatches between the
// monitored object and the DLL.
#define MON_SHARED_MEMORY_SIGNATURE 0x47575011
// MON_DATA_BLOCK_SIZE is the size of the buffer within the shared block
// in which is built the structure that is sent to the Windows NT
// Performance Monitor. This value may be increased if needed to hold
// a larger number of counters. A change in this value does not require
// any other values to be changed.
#define MON_DATA_BLOCK_SIZE 4000
// MON_MUTEX_TIMEOUT is the number of miliseconds to wait for the
// mutex that locks the shared memory section. May be defined as
// INFINITE to wait forever.
#define MON_MUTEX_TIMEOUT (5*60*1000)
//
// Structure Definitions
//
//$--MONSHAREDMEMORY------------------------------------------------------------
// This is the structure of the shared memory block used to communicate with
// the performance DLL. The _PERF_* structures are all built inside the
// rgbDataBlock array within this structure.
// -----------------------------------------------------------------------------
typedef struct _MonSharedMemory // (hungarian notation = msm)
{
DWORD dwSignature; // value that identifies this as an
// Exchange SDK perf mon memory block
DWORD fDataIsValid; // safe for DLL to use shared mem data
DWORD ibHeaderOffset; // offset of _PERF_OBJECT_TYPE and
// _PERF_COUNTER_DEFINITION structures
// in this shared memory block
DWORD cbHeaderSize; // size of _PERF_OBJECT_TYPE and
// _PERF_COUNTER_DEFINITION structures
// in this shared memory block
DWORD ibInstanceOffset; // offset of _PERF_INSTANCE_DEFINITION,
// _PERF_COUNTER_BLOCK and counters
// in this shared memory block
DWORD cbInstanceSize; // size of _PERF_INSTANCE_DEFINITION,
// _PERF_COUNTER_BLOCK and counters
// in this shared memory block
BYTE rgbDataBlock[MON_DATA_BLOCK_SIZE]; // the actual data block containing
// both of the structures listed above
} MONSHAREDMEMORY, *LPMONSHAREDMEMORY;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -