121 lines
3.5 KiB
C
121 lines
3.5 KiB
C
/**********************************************************************/
|
|
/** 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_
|
|
|
|
#pragma pack(8)
|
|
|
|
//
|
|
// 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;
|
|
PERF_COUNTER_DEFINITION FtpdServiceUptime;
|
|
|
|
// These counters are currently meaningless, but should be restored if we
|
|
// ever enable per-FTP-instance bandwidth throttling.
|
|
/*
|
|
PERF_COUNTER_DEFINITION FtpdAllowedRequests;
|
|
PERF_COUNTER_DEFINITION FtpdRejectedRequests;
|
|
PERF_COUNTER_DEFINITION FtpdBlockedRequests;
|
|
PERF_COUNTER_DEFINITION FtpdCurrentBlockedRequests;
|
|
PERF_COUNTER_DEFINITION FtpdMeasuredBandwidth;
|
|
*/
|
|
} FTPD_DATA_DEFINITION;
|
|
|
|
typedef struct _FTPD_COUNTER_BLOCK
|
|
{
|
|
PERF_COUNTER_BLOCK PerfCounterBlock;
|
|
LONGLONG BytesSent;
|
|
LONGLONG BytesReceived;
|
|
LONGLONG BytesTotal;
|
|
|
|
DWORD FilesSent;
|
|
DWORD FilesReceived;
|
|
DWORD FilesTotal;
|
|
|
|
DWORD CurrentAnonymous;
|
|
DWORD CurrentNonAnonymous;
|
|
DWORD TotalAnonymous;
|
|
DWORD TotalNonAnonymous;
|
|
|
|
DWORD MaxAnonymous;
|
|
DWORD MaxNonAnonymous;
|
|
DWORD CurrentConnections;
|
|
DWORD MaxConnections;
|
|
|
|
DWORD ConnectionAttempts;
|
|
DWORD LogonAttempts;
|
|
DWORD ServiceUptime;
|
|
|
|
// These counters are currently meaningless, but should be restored if we
|
|
// ever enable per-FTP-instance bandwidth throttling.
|
|
/*
|
|
DWORD AllowedRequests;
|
|
DWORD RejectedRequests;
|
|
DWORD BlockedRequests;
|
|
DWORD CurrentBlockedRequests;
|
|
DWORD MeasuredBandwidth;
|
|
*/
|
|
} FTPD_COUNTER_BLOCK;
|
|
|
|
|
|
//
|
|
// The routines that load these structures assume that all fields
|
|
// are DWORD packed & aligned.
|
|
//
|
|
|
|
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_
|
|
|