mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
5.5 KiB
158 lines
5.5 KiB
/*++
|
|
|
|
Copyright (c) 1994 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
gddata.h
|
|
|
|
Abstract:
|
|
|
|
Extensible object definitions for the Gopher FTP Server's
|
|
counter objects & counters.
|
|
|
|
Author:
|
|
|
|
Murali R. Krishnan ( MuraliK ) 24-Nov-1994
|
|
|
|
Project:
|
|
|
|
Gopher Server Performance Counters DLL
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
# ifndef _GDDATA_H_
|
|
# define _GDDATA_H_
|
|
|
|
|
|
/************************************************************
|
|
* Type Definitions
|
|
************************************************************/
|
|
|
|
//
|
|
// This structure is used to ensure the first counter is properly
|
|
// aligned. Unfortunately, since PERF_COUNTER_BLOCK consists
|
|
// of just a single DWORD, any LARGE_INTEGERs that immediately
|
|
// follow will not be aligned properly.
|
|
//
|
|
// This structure requires "natural" packing & alignment (probably
|
|
// quad-word, especially on Alpha). Ergo, keep it out of the
|
|
// #pragma pack(4) scope below.
|
|
//
|
|
|
|
|
|
typedef struct _GD_COUNTER_BLOCK
|
|
{
|
|
PERF_COUNTER_BLOCK PerfCounterBlock;
|
|
LARGE_INTEGER DummyEntryForAlignmentPurposesOnly;
|
|
|
|
} GD_COUNTER_BLOCK;
|
|
|
|
|
|
|
|
//
|
|
// The routines that load these structures assume that all fields
|
|
// are DWORD packed & aligned.
|
|
//
|
|
|
|
#pragma pack(4)
|
|
|
|
|
|
//
|
|
// Offsets within a PERF_COUNTER_BLOCK.
|
|
//
|
|
|
|
#define GD_BYTES_SENT_OFFSET sizeof(GD_COUNTER_BLOCK)
|
|
#define GD_BYTES_RECEIVED_OFFSET (GD_BYTES_SENT_OFFSET + \
|
|
sizeof(LARGE_INTEGER))
|
|
#define GD_BYTES_TOTAL_OFFSET (GD_BYTES_RECEIVED_OFFSET + \
|
|
sizeof(LARGE_INTEGER))
|
|
#define GD_FILES_SENT_OFFSET (GD_BYTES_TOTAL_OFFSET + \
|
|
sizeof(LARGE_INTEGER))
|
|
#define GD_DIRECTORY_LISTINGS_OFFSET (GD_FILES_SENT_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_TOTAL_SEARCHES_OFFSET (GD_DIRECTORY_LISTINGS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_CURRENT_ANONYMOUS_OFFSET (GD_TOTAL_SEARCHES_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_CURRENT_NONANONYMOUS_OFFSET (GD_CURRENT_ANONYMOUS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_TOTAL_ANONYMOUS_OFFSET (GD_CURRENT_NONANONYMOUS_OFFSET+ \
|
|
sizeof(DWORD))
|
|
#define GD_TOTAL_NONANONYMOUS_OFFSET (GD_TOTAL_ANONYMOUS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_MAX_ANONYMOUS_OFFSET (GD_TOTAL_NONANONYMOUS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_MAX_NONANONYMOUS_OFFSET (GD_MAX_ANONYMOUS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_CURRENT_CONNECTIONS_OFFSET (GD_MAX_NONANONYMOUS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_MAX_CONNECTIONS_OFFSET (GD_CURRENT_CONNECTIONS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_CONNECTION_ATTEMPTS_OFFSET (GD_MAX_CONNECTIONS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_LOGON_ATTEMPTS_OFFSET (GD_CONNECTION_ATTEMPTS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_ABORTED_CONNECTIONS_OFFSET (GD_LOGON_ATTEMPTS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_ERRORED_CONNECTIONS_OFFSET (GD_ABORTED_CONNECTIONS_OFFSET + \
|
|
sizeof(DWORD))
|
|
#define GD_GOPHER_PLUS_REQUESTS_OFFSET (GD_ERRORED_CONNECTIONS_OFFSET + \
|
|
sizeof(DWORD))
|
|
|
|
#define SIZE_OF_GD_PERFORMANCE_DATA (GD_GOPHER_PLUS_REQUESTS_OFFSET + \
|
|
sizeof(DWORD))
|
|
|
|
|
|
//
|
|
// The counter structure returned.
|
|
//
|
|
|
|
typedef struct _GD_DATA_DEFINITION
|
|
{
|
|
PERF_OBJECT_TYPE GdObjectType;
|
|
PERF_COUNTER_DEFINITION GdBytesSent;
|
|
PERF_COUNTER_DEFINITION GdBytesReceived;
|
|
PERF_COUNTER_DEFINITION GdBytesTotal;
|
|
PERF_COUNTER_DEFINITION GdFilesSent;
|
|
PERF_COUNTER_DEFINITION GdDirectoryListings;
|
|
PERF_COUNTER_DEFINITION GdTotalSearches;
|
|
PERF_COUNTER_DEFINITION GdCurrentAnonymous;
|
|
PERF_COUNTER_DEFINITION GdCurrentNonAnonymous;
|
|
PERF_COUNTER_DEFINITION GdTotalAnonymous;
|
|
PERF_COUNTER_DEFINITION GdTotalNonAnonymous;
|
|
PERF_COUNTER_DEFINITION GdMaxAnonymous;
|
|
PERF_COUNTER_DEFINITION GdMaxNonAnonymous;
|
|
PERF_COUNTER_DEFINITION GdCurrentConnections;
|
|
PERF_COUNTER_DEFINITION GdMaxConnections;
|
|
PERF_COUNTER_DEFINITION GdConnectionAttempts;
|
|
PERF_COUNTER_DEFINITION GdLogonAttempts;
|
|
PERF_COUNTER_DEFINITION GdAbortedAttempts;
|
|
PERF_COUNTER_DEFINITION GdErroredConnections;
|
|
PERF_COUNTER_DEFINITION GdGopherPlusRequests;
|
|
|
|
} GD_DATA_DEFINITION;
|
|
|
|
|
|
extern GD_DATA_DEFINITION GdDataDefinition;
|
|
|
|
|
|
#define NUMBER_OF_GD_COUNTERS ((sizeof(GD_DATA_DEFINITION) - \
|
|
sizeof(PERF_OBJECT_TYPE)) / \
|
|
sizeof(PERF_COUNTER_DEFINITION))
|
|
|
|
|
|
//
|
|
// Restore default packing & alignment.
|
|
//
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
|
# endif // _GDDATA_H_
|
|
|
|
/************************ End of File ***********************/
|
|
|