blob: f6af9af41cfc17c0d81582354b34c6f3dbda7934 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
//
// 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 SIZE_OF_COUNTER_BLOCK PACKET_BURST_IO_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;
|