windows-nt/Source/XPSP1/NT/ds/nw/perf/nwperf.h
2020-09-26 16:20:57 +08:00

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;