147 lines
6.4 KiB
C
147 lines
6.4 KiB
C
|
|
||
|
//
|
||
|
// MODULE: NWPerf.H
|
||
|
//
|
||
|
// This file contains all the defines and prototypes for the performnce
|
||
|
// monitoring DLL for NetWare redirector
|
||
|
//
|
||
|
// Date: Sept, 28 1993
|
||
|
|
||
|
|
||
|
//
|
||
|
// The routines that load these structures assume that all fields
|
||
|
// are packed and aligned on DWORD boundries. Alpha support may
|
||
|
// change this assumption so the pack pragma is used here to insure
|
||
|
// the DWORD packing assumption remains valid.
|
||
|
//
|
||
|
#pragma pack (4)
|
||
|
|
||
|
//
|
||
|
// All these definitions will have to be updated when new counters are added.
|
||
|
// if a new counter called COUNTX is added then the Help and Title indicies
|
||
|
// defines should include a new entry - "#define COUNTXOBJ 4". This increases
|
||
|
// in increments of 2 because each counter has a title and help index.
|
||
|
//
|
||
|
// The Offset of the counters should have another entry - with the size of
|
||
|
// the data for COUNT -
|
||
|
// "#define COUNTER_OFFSET_COUNTX COUNTER_OFFSET_USERS+sizeof(COUNTX_TYPE)"
|
||
|
//
|
||
|
// The SIZE_OF_COUNTER_BLOCK will be updated to:
|
||
|
// "#define SIZE_OF_COUNTER_BLOCK COUNTER_OFFSET_COUNTX + sizeof(DWORD)"
|
||
|
//
|
||
|
// Finally the NW_DATA_DEFINITION will have a new PERF_COUNTER_DEFINTIION
|
||
|
// entry
|
||
|
|
||
|
// Title and Help index defines. These are used for looking up the Registry
|
||
|
// to get at the counter indicies for the title and help strings.
|
||
|
|
||
|
#define NW_NUM_OBJECTS 1
|
||
|
#define NWOBJ 0
|
||
|
#define PACKET_BURST_READ_ID 2
|
||
|
#define PACKET_BURST_READ_TO_ID 4
|
||
|
#define PACKET_BURST_WRITE_ID 6
|
||
|
#define PACKET_BURST_WRITE_TO_ID 8
|
||
|
#define PACKET_BURST_IO_ID 10
|
||
|
#define CONNECT_2X_ID 12
|
||
|
#define CONNECT_3X_ID 14
|
||
|
#define CONNECT_4X_ID 16
|
||
|
|
||
|
//
|
||
|
// NetWare Redirector data object definitions.
|
||
|
// The offsets of the counters. The first DWORD is the size of the counter
|
||
|
// data block. In WinPerf, you will see this as PERF_COUNTER_BLOCK.ByteLength
|
||
|
//
|
||
|
#define BYTES_OFFSET sizeof(DWORD)
|
||
|
#define IO_OPERATIONS_OFFSET BYTES_OFFSET + sizeof(LARGE_INTEGER)
|
||
|
#define PACKETS_OFFSET IO_OPERATIONS_OFFSET + sizeof(DWORD)
|
||
|
#define BYTES_RECEIVED_OFFSET PACKETS_OFFSET + \
|
||
|
sizeof(LARGE_INTEGER)
|
||
|
#define NCPS_RECEIVED_OFFSET BYTES_RECEIVED_OFFSET + \
|
||
|
sizeof(LARGE_INTEGER)
|
||
|
#define BYTES_TRANSMITTED_OFFSET \
|
||
|
NCPS_RECEIVED_OFFSET + \
|
||
|
sizeof(LARGE_INTEGER)
|
||
|
#define NCPS_TRANSMITTED_OFFSET \
|
||
|
BYTES_TRANSMITTED_OFFSET + \
|
||
|
sizeof(LARGE_INTEGER)
|
||
|
#define RDR_READ_OPERATIONS_OFFSET \
|
||
|
NCPS_TRANSMITTED_OFFSET + \
|
||
|
sizeof(LARGE_INTEGER)
|
||
|
#define RANDOM_READ_OPERATIONS_OFFSET RDR_READ_OPERATIONS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define READ_NCPS_OFFSET RANDOM_READ_OPERATIONS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define RDR_WRITE_OPERATIONS_OFFSET READ_NCPS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define RANDOM_WRITE_OPERATIONS_OFFSET RDR_WRITE_OPERATIONS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define WRITE_NCPS_OFFSET RANDOM_WRITE_OPERATIONS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define SESSIONS_OFFSET WRITE_NCPS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define RECONNECTS_OFFSET SESSIONS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define NETWARE_2X_CONNECTS_OFFSET RECONNECTS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define NETWARE_3X_CONNECTS_OFFSET NETWARE_2X_CONNECTS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define NETWARE_4X_CONNECTS_OFFSET NETWARE_3X_CONNECTS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define SERVER_DISCONNECTS_OFFSET NETWARE_4X_CONNECTS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define PACKET_BURST_READ_OFFSET SERVER_DISCONNECTS_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define PACKET_BURST_READ_TO_OFFSET PACKET_BURST_READ_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define PACKET_BURST_WRITE_OFFSET PACKET_BURST_READ_TO_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define PACKET_BURST_WRITE_TO_OFFSET PACKET_BURST_WRITE_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define PACKET_BURST_IO_OFFSET PACKET_BURST_WRITE_TO_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define EIGHT_BYTE_PAD_OFFSET PACKET_BURST_IO_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
#define SIZE_OF_COUNTER_BLOCK EIGHT_BYTE_PAD_OFFSET + \
|
||
|
sizeof(DWORD)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
// The definition of the NetWare Data definition. This structure holds the
|
||
|
// definition for actual NetWare object and the definition for each of the
|
||
|
// counters.
|
||
|
typedef struct _NW_DATA_DEFINITION {
|
||
|
PERF_OBJECT_TYPE NWObjectType;
|
||
|
PERF_COUNTER_DEFINITION Bytes;
|
||
|
PERF_COUNTER_DEFINITION IoOperations;
|
||
|
PERF_COUNTER_DEFINITION Ncps;
|
||
|
PERF_COUNTER_DEFINITION BytesReceived;
|
||
|
PERF_COUNTER_DEFINITION NcpsReceived;
|
||
|
PERF_COUNTER_DEFINITION BytesTransmitted;
|
||
|
PERF_COUNTER_DEFINITION NcpsTransmitted;
|
||
|
PERF_COUNTER_DEFINITION ReadOperations;
|
||
|
PERF_COUNTER_DEFINITION RandomReadOperations;
|
||
|
PERF_COUNTER_DEFINITION ReadNcps;
|
||
|
PERF_COUNTER_DEFINITION WriteOperations;
|
||
|
PERF_COUNTER_DEFINITION RandomWriteOperations;
|
||
|
PERF_COUNTER_DEFINITION WriteNcps;
|
||
|
PERF_COUNTER_DEFINITION Sessions;
|
||
|
PERF_COUNTER_DEFINITION Reconnects;
|
||
|
PERF_COUNTER_DEFINITION NetWare2XConnects;
|
||
|
PERF_COUNTER_DEFINITION NetWare3XConnects;
|
||
|
PERF_COUNTER_DEFINITION NetWare4XConnects;
|
||
|
PERF_COUNTER_DEFINITION ServerDisconnects;
|
||
|
PERF_COUNTER_DEFINITION PacketBurstRead;
|
||
|
PERF_COUNTER_DEFINITION PacketBurstReadTimeouts;
|
||
|
PERF_COUNTER_DEFINITION PacketBurstWrite;
|
||
|
PERF_COUNTER_DEFINITION PacketBurstWriteTimeouts;
|
||
|
PERF_COUNTER_DEFINITION PacketBurstIO;
|
||
|
} NW_DATA_DEFINITION;
|
||
|
|
||
|
#pragma pack ()
|
||
|
|
||
|
PM_OPEN_PROC OpenNetWarePerformanceData;
|
||
|
PM_COLLECT_PROC CollectNetWarePerformanceData;
|
||
|
PM_CLOSE_PROC CloseNetWarePerformanceData;
|
||
|
|