Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

133 lines
4.8 KiB

/**********************************************************************/
/** Microsoft Windows NT **/
/** Copyright(c) Microsoft Corp., 1993 **/
/**********************************************************************/
/*
ftpdata.h
Extensible object definitions for the FTP Server's counter
objects & counters.
FILE HISTORY:
KeithMo 07-Jun-1993 Created.
*/
#ifndef _FTPDATA_H_
#define _FTPDATA_H_
//
// 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 _FTPD_COUNTER_BLOCK
{
PERF_COUNTER_BLOCK PerfCounterBlock;
LARGE_INTEGER DummyEntryForAlignmentPurposesOnly;
} FTPD_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 FTPD_BYTES_SENT_OFFSET sizeof(FTPD_COUNTER_BLOCK)
#define FTPD_BYTES_RECEIVED_OFFSET (FTPD_BYTES_SENT_OFFSET + \
sizeof(LARGE_INTEGER))
#define FTPD_BYTES_TOTAL_OFFSET (FTPD_BYTES_RECEIVED_OFFSET + \
sizeof(LARGE_INTEGER))
#define FTPD_FILES_SENT_OFFSET (FTPD_BYTES_TOTAL_OFFSET + \
sizeof(LARGE_INTEGER))
#define FTPD_FILES_RECEIVED_OFFSET (FTPD_FILES_SENT_OFFSET + \
sizeof(DWORD))
#define FTPD_FILES_TOTAL_OFFSET (FTPD_FILES_RECEIVED_OFFSET + \
sizeof(DWORD))
#define FTPD_CURRENT_ANONYMOUS_OFFSET (FTPD_FILES_TOTAL_OFFSET + \
sizeof(DWORD))
#define FTPD_CURRENT_NONANONYMOUS_OFFSET (FTPD_CURRENT_ANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_TOTAL_ANONYMOUS_OFFSET (FTPD_CURRENT_NONANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_TOTAL_NONANONYMOUS_OFFSET (FTPD_TOTAL_ANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_MAX_ANONYMOUS_OFFSET (FTPD_TOTAL_NONANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_MAX_NONANONYMOUS_OFFSET (FTPD_MAX_ANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_CURRENT_CONNECTIONS_OFFSET (FTPD_MAX_NONANONYMOUS_OFFSET + \
sizeof(DWORD))
#define FTPD_MAX_CONNECTIONS_OFFSET (FTPD_CURRENT_CONNECTIONS_OFFSET + \
sizeof(DWORD))
#define FTPD_CONNECTION_ATTEMPTS_OFFSET (FTPD_MAX_CONNECTIONS_OFFSET + \
sizeof(DWORD))
#define FTPD_LOGON_ATTEMPTS_OFFSET (FTPD_CONNECTION_ATTEMPTS_OFFSET + \
sizeof(DWORD))
#define SIZE_OF_FTPD_PERFORMANCE_DATA (FTPD_LOGON_ATTEMPTS_OFFSET + \
sizeof(DWORD))
//
// The counter structure returned.
//
typedef struct _FTPD_DATA_DEFINITION
{
PERF_OBJECT_TYPE FtpdObjectType;
PERF_COUNTER_DEFINITION FtpdBytesSent;
PERF_COUNTER_DEFINITION FtpdBytesReceived;
PERF_COUNTER_DEFINITION FtpdBytesTotal;
PERF_COUNTER_DEFINITION FtpdFilesSent;
PERF_COUNTER_DEFINITION FtpdFilesReceived;
PERF_COUNTER_DEFINITION FtpdFilesTotal;
PERF_COUNTER_DEFINITION FtpdCurrentAnonymous;
PERF_COUNTER_DEFINITION FtpdCurrentNonAnonymous;
PERF_COUNTER_DEFINITION FtpdTotalAnonymous;
PERF_COUNTER_DEFINITION FtpdTotalNonAnonymous;
PERF_COUNTER_DEFINITION FtpdMaxAnonymous;
PERF_COUNTER_DEFINITION FtpdMaxNonAnonymous;
PERF_COUNTER_DEFINITION FtpdCurrentConnections;
PERF_COUNTER_DEFINITION FtpdMaxConnections;
PERF_COUNTER_DEFINITION FtpdConnectionAttempts;
PERF_COUNTER_DEFINITION FtpdLogonAttempts;
} FTPD_DATA_DEFINITION;
extern FTPD_DATA_DEFINITION FtpdDataDefinition;
#define NUMBER_OF_FTPD_COUNTERS ((sizeof(FTPD_DATA_DEFINITION) - \
sizeof(PERF_OBJECT_TYPE)) / \
sizeof(PERF_COUNTER_DEFINITION))
//
// Restore default packing & alignment.
//
#pragma pack()
#endif // _FTPDATA_H_