357 lines
20 KiB
C
357 lines
20 KiB
C
//#---------------------------------------------------------------
|
|
// File: smtpdata.h
|
|
//
|
|
// Synopsis: Extensible object definitions for the SMTP
|
|
// Server's counter objects & counters.
|
|
//
|
|
// Copyright (C) 1995 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
// Authors: toddch - based on msn sources by rkamicar, keithmo
|
|
// dhowell - added Instance Support for K2
|
|
//----------------------------------------------------------------
|
|
|
|
#ifndef _SMTPDATA_H_
|
|
#define _SMTPDATA_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 unsigned __int64s 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 _SMTP_COUNTER_BLOCK
|
|
{
|
|
PERF_COUNTER_BLOCK PerfCounterBlock;
|
|
unsigned __int64 DummyEntryForAlignmentPurposesOnly;
|
|
|
|
} SMTP_COUNTER_BLOCK;
|
|
|
|
|
|
#define INSTANCE_NAME_SIZE 20
|
|
|
|
typedef WCHAR SMTP_INSTANCE_NAME[INSTANCE_NAME_SIZE];
|
|
|
|
typedef struct _SMTP_INSTANCE_DEFINITION
|
|
{
|
|
PERF_INSTANCE_DEFINITION PerfInstanceDef;
|
|
SMTP_INSTANCE_NAME InstanceName;
|
|
} SMTP_INSTANCE_DEFINITION;
|
|
|
|
|
|
//
|
|
// The routines that load these structures assume that all fields
|
|
// are DWORD packed & aligned.
|
|
//
|
|
|
|
#pragma pack(4)
|
|
|
|
|
|
//
|
|
// Offsets within a PERF_COUNTER_BLOCK.
|
|
//
|
|
|
|
#define SMTP_BYTES_SENT_TTL_OFFSET sizeof(SMTP_COUNTER_BLOCK)
|
|
#define SMTP_BYTES_SENT_PER_SEC_OFFSET (SMTP_BYTES_SENT_TTL_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_RCVD_TTL_OFFSET (SMTP_BYTES_SENT_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_RCVD_PER_SEC_OFFSET (SMTP_BYTES_RCVD_TTL_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_TTL_OFFSET (SMTP_BYTES_RCVD_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_TTL_PER_SEC_OFFSET (SMTP_BYTES_TTL_OFFSET + sizeof(unsigned __int64))
|
|
|
|
#define SMTP_BYTES_SENT_MSG_OFFSET (SMTP_BYTES_TTL_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_SENT_MSG_PER_SEC_OFFSET (SMTP_BYTES_SENT_MSG_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_RCVD_MSG_OFFSET (SMTP_BYTES_SENT_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_RCVD_MSG_PER_SEC_OFFSET (SMTP_BYTES_RCVD_MSG_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_MSG_OFFSET (SMTP_BYTES_RCVD_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_BYTES_MSG_PER_SEC_OFFSET (SMTP_BYTES_MSG_OFFSET + sizeof(unsigned __int64))
|
|
|
|
#define SMTP_MSG_RCVD_TTL_OFFSET (SMTP_BYTES_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
|
|
#define SMTP_MSG_RCVD_PER_SEC_OFFSET (SMTP_MSG_RCVD_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_AVG_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_MSG_RCVD_PER_SEC_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_AVG_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_AVG_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_BASE_AVG_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_BASE_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_RCVD_REFUSED_SIZE_OFFSET (SMTP_BASE_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_RCVD_REFUSED_CADDR_OFFSET (SMTP_MSG_RCVD_REFUSED_SIZE_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_RCVD_REFUSED_MAIL_OFFSET (SMTP_MSG_RCVD_REFUSED_CADDR_OFFSET + sizeof(DWORD))
|
|
|
|
|
|
#define SMTP_MSG_DLVR_TTL_OFFSET (SMTP_MSG_RCVD_REFUSED_MAIL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_DLVR_PER_SEC_OFFSET (SMTP_MSG_DLVR_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_DLVR_RETRIES_TTL_OFFSET (SMTP_MSG_DLVR_PER_SEC_OFFSET + sizeof(DWORD))
|
|
#define SMTP_AVG_RETRIES_PER_MSG_DLVR_OFFSET (SMTP_MSG_DLVR_RETRIES_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_AVG_RETRIES_PER_MSG_DLVR_OFFSET (SMTP_AVG_RETRIES_PER_MSG_DLVR_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_FWD_TTL_OFFSET (SMTP_BASE_AVG_RETRIES_PER_MSG_DLVR_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_FWD_PER_SEC_OFFSET (SMTP_MSG_FWD_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_NDR_GENERATED_OFFSET (SMTP_MSG_FWD_PER_SEC_OFFSET + sizeof(DWORD))
|
|
#define SMTP_LOCALQ_LENGTH_OFFSET (SMTP_NDR_GENERATED_OFFSET + sizeof(DWORD))
|
|
#define SMTP_RETRYQ_LENGTH_OFFSET (SMTP_LOCALQ_LENGTH_OFFSET + sizeof(DWORD))
|
|
#define SMTP_NUM_MAILFILE_HANDLES_OFFSET (SMTP_RETRYQ_LENGTH_OFFSET + sizeof(DWORD))
|
|
#define SMTP_NUM_QUEUEFILE_HANDLES_OFFSET (SMTP_NUM_MAILFILE_HANDLES_OFFSET + sizeof(DWORD))
|
|
#define SMTP_CATQ_LENGTH_OFFSET (SMTP_NUM_QUEUEFILE_HANDLES_OFFSET + sizeof(DWORD))
|
|
|
|
#define SMTP_MSG_SENT_TTL_OFFSET (SMTP_CATQ_LENGTH_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_SENT_PER_SEC_OFFSET (SMTP_MSG_SENT_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_MSG_SEND_RETRIES_TTL_OFFSET (SMTP_MSG_SENT_PER_SEC_OFFSET + sizeof(DWORD))
|
|
#define SMTP_AVG_RETRIES_PER_MSG_SEND_OFFSET (SMTP_MSG_SEND_RETRIES_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_AVG_RETRIES_PER_MSG_SEND_OFFSET (SMTP_AVG_RETRIES_PER_MSG_SEND_OFFSET + sizeof(DWORD))
|
|
#define SMTP_AVG_RCPTS_PER_MSG_SENT_OFFSET (SMTP_BASE_AVG_RETRIES_PER_MSG_SEND_OFFSET + sizeof(DWORD))
|
|
#define SMTP_BASE_AVG_RCPTS_PER_MSG_SENT_OFFSET (SMTP_AVG_RCPTS_PER_MSG_SENT_OFFSET + sizeof(DWORD))
|
|
#define SMTP_REMOTEQ_LENGTH_OFFSET (SMTP_BASE_AVG_RCPTS_PER_MSG_SENT_OFFSET + sizeof(DWORD))
|
|
|
|
#define SMTP_DNS_QUERIES_TTL_OFFSET (SMTP_REMOTEQ_LENGTH_OFFSET + sizeof(DWORD))
|
|
#define SMTP_DNS_QUERIES_PER_SEC_OFFSET (SMTP_DNS_QUERIES_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_REMOTE_RETRY_QUEUE_LENGTH_OFFSET (SMTP_DNS_QUERIES_PER_SEC_OFFSET + sizeof(DWORD))
|
|
|
|
#define SMTP_CONN_IN_TTL_OFFSET (SMTP_REMOTE_RETRY_QUEUE_LENGTH_OFFSET + sizeof(DWORD))
|
|
#define SMTP_CONN_IN_CURR_OFFSET (SMTP_CONN_IN_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_CONN_OUT_TTL_OFFSET (SMTP_CONN_IN_CURR_OFFSET + sizeof(DWORD))
|
|
#define SMTP_CONN_OUT_CURR_OFFSET (SMTP_CONN_OUT_TTL_OFFSET + sizeof(DWORD))
|
|
#define SMTP_CONN_OUT_REFUSED_OFFSET (SMTP_CONN_OUT_CURR_OFFSET + sizeof(DWORD))
|
|
|
|
#define SMTP_ERR_TTL_OFFSET (SMTP_CONN_OUT_REFUSED_OFFSET + sizeof(DWORD))
|
|
#define SMTP_ERR_PER_SEC_OFFSET (SMTP_ERR_TTL_OFFSET + sizeof(DWORD))
|
|
|
|
/*** HIT A COMPILER LIMIT ON OPEN BRACKETS, HAD TO REMOVE SOME BRAKETS ***/
|
|
|
|
#define SMTP_DIR_DROPS_OFFSET SMTP_ERR_PER_SEC_OFFSET + sizeof(DWORD)
|
|
#define SMTP_DIR_DROPS_PER_SEC_OFFSET SMTP_DIR_DROPS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RT_LOOKUPS_OFFSET SMTP_DIR_DROPS_PER_SEC_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RT_LOOKUPS_PER_SEC_OFFSET SMTP_RT_LOOKUPS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ETRN_MSGS_OFFSET SMTP_RT_LOOKUPS_PER_SEC_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ETRN_MSGS_PER_SEC_OFFSET SMTP_ETRN_MSGS_OFFSET + sizeof(DWORD)
|
|
|
|
#define SMTP_MSG_BADMAIL_NO_RECIPIENTS_OFFSET SMTP_ETRN_MSGS_PER_SEC_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_BADMAIL_HOP_COUNT_EXCEEDED_OFFSET SMTP_MSG_BADMAIL_NO_RECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_BADMAIL_FAILURE_GENERAL_OFFSET SMTP_MSG_BADMAIL_HOP_COUNT_EXCEEDED_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_BADMAIL_BAD_PICKUP_FILE_OFFSET SMTP_MSG_BADMAIL_FAILURE_GENERAL_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_BADMAIL_EVENT_OFFSET SMTP_MSG_BADMAIL_BAD_PICKUP_FILE_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_BADMAIL_NDR_OF_DSN_OFFSET SMTP_MSG_BADMAIL_EVENT_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_PENDING_ROUTING_OFFSET SMTP_MSG_BADMAIL_NDR_OF_DSN_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_PENDING_UNREACHABLE_LINK_OFFSET SMTP_MSG_PENDING_ROUTING_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SUBMITTED_MESSAGES_OFFSET SMTP_MSG_PENDING_UNREACHABLE_LINK_OFFSET + sizeof(DWORD)
|
|
#define SMTP_DSN_FAILURES_OFFSET SMTP_SUBMITTED_MESSAGES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MSG_IN_LOCAL_DELIVERY_OFFSET SMTP_DSN_FAILURES_OFFSET + sizeof(DWORD)
|
|
|
|
#define SMTP_CATSUBMISSIONS_OFFSET SMTP_MSG_IN_LOCAL_DELIVERY_OFFSET + sizeof(DWORD)
|
|
#define SMTP_CATCOMPLETIONS_OFFSET SMTP_CATSUBMISSIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_CURRENTCATEGORIZATIONS_OFFSET SMTP_CATCOMPLETIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SUCCEEDEDCATEGORIZATIONS_OFFSET SMTP_CURRENTCATEGORIZATIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_HARDFAILURECATEGORIZATIONS_OFFSET SMTP_SUCCEEDEDCATEGORIZATIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RETRYFAILURECATEGORIZATIONS_OFFSET SMTP_HARDFAILURECATEGORIZATIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RETRYOUTOFMEMORY_OFFSET SMTP_RETRYFAILURECATEGORIZATIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RETRYDSLOGON_OFFSET SMTP_RETRYOUTOFMEMORY_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RETRYDSCONNECTION_OFFSET SMTP_RETRYDSLOGON_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RETRYGENERIC_OFFSET SMTP_RETRYDSCONNECTION_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MESSAGESSUBMITTEDTOQUEUEING_OFFSET SMTP_RETRYGENERIC_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MESSAGESCREATED_OFFSET SMTP_MESSAGESSUBMITTEDTOQUEUEING_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MESSAGESABORTED_OFFSET SMTP_MESSAGESCREATED_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PRECATRECIPIENTS_OFFSET SMTP_MESSAGESABORTED_OFFSET + sizeof(DWORD)
|
|
#define SMTP_POSTCATRECIPIENTS_OFFSET SMTP_PRECATRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_NDRDRECIPIENTS_OFFSET SMTP_POSTCATRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_UNRESOLVEDRECIPIENTS_OFFSET SMTP_NDRDRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_AMBIGUOUSRECIPIENTS_OFFSET SMTP_UNRESOLVEDRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ILLEGALRECIPIENTS_OFFSET SMTP_AMBIGUOUSRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_LOOPRECIPIENTS_OFFSET SMTP_ILLEGALRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_GENERICFAILURERECIPIENTS_OFFSET SMTP_LOOPRECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_RECIPSINMEMORY_OFFSET SMTP_GENERICFAILURERECIPIENTS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_UNRESOLVEDSENDERS_OFFSET SMTP_RECIPSINMEMORY_OFFSET + sizeof(DWORD)
|
|
#define SMTP_AMBIGUOUSSENDERS_OFFSET SMTP_UNRESOLVEDSENDERS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ADDRESSLOOKUPS_OFFSET SMTP_AMBIGUOUSSENDERS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ADDRESSLOOKUPCOMPLETIONS_OFFSET SMTP_ADDRESSLOOKUPS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ADDRESSLOOKUPSNOTFOUND_OFFSET SMTP_ADDRESSLOOKUPCOMPLETIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_MAILMSGDUPLICATECOLLISIONS_OFFSET SMTP_ADDRESSLOOKUPSNOTFOUND_OFFSET + sizeof(DWORD)
|
|
#define SMTP_CONNECTIONS_OFFSET SMTP_MAILMSGDUPLICATECOLLISIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_CONNECTFAILURES_OFFSET SMTP_CONNECTIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_OPENCONNECTIONS_OFFSET SMTP_CONNECTFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_BINDS_OFFSET SMTP_OPENCONNECTIONS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_BINDFAILURES_OFFSET SMTP_BINDS_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SEARCHES_OFFSET SMTP_BINDFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PAGEDSEARCHES_OFFSET SMTP_SEARCHES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SEARCHFAILURES_OFFSET SMTP_PAGEDSEARCHES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PAGEDSEARCHFAILURES_OFFSET SMTP_SEARCHFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SEARCHESCOMPLETED_OFFSET SMTP_PAGEDSEARCHFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PAGEDSEARCHESCOMPLETED_OFFSET SMTP_SEARCHESCOMPLETED_OFFSET + sizeof(DWORD)
|
|
#define SMTP_SEARCHCOMPLETIONFAILURES_OFFSET SMTP_PAGEDSEARCHESCOMPLETED_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PAGEDSEARCHCOMPLETIONFAILURES_OFFSET SMTP_SEARCHCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_GENERALCOMPLETIONFAILURES_OFFSET SMTP_PAGEDSEARCHCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_ABANDONEDSEARCHES_OFFSET SMTP_GENERALCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
|
|
#define SMTP_PENDINGSEARCHES_OFFSET SMTP_ABANDONEDSEARCHES_OFFSET + sizeof(DWORD)
|
|
// This needs to be here to pad out the number of bytes returned to
|
|
// be divisible by 8. If you add new counters please check eventvwr to
|
|
// make sure that you don't have warnings from Perflib saying that your
|
|
// counters aren't properly padded. If you do get these warnings then
|
|
// comment out this item
|
|
#define SMTP_PADDING_OFFSET SMTP_PENDINGSEARCHES_OFFSET + sizeof(DWORD)
|
|
|
|
#define SIZE_OF_SMTP_PERFORMANCE_DATA SMTP_PADDING_OFFSET + sizeof(DWORD)
|
|
|
|
|
|
//
|
|
// The counter structure returned.
|
|
//
|
|
|
|
typedef struct _SMTP_DATA_DEFINITION
|
|
{
|
|
PERF_OBJECT_TYPE SmtpObjectType;
|
|
PERF_COUNTER_DEFINITION SmtpBytesSentTtl;
|
|
PERF_COUNTER_DEFINITION SmtpBytesSentPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpBytesRcvdTtl;
|
|
PERF_COUNTER_DEFINITION SmtpBytesRcvdPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpBytesTtl;
|
|
PERF_COUNTER_DEFINITION SmtpBytesTtlPerSec;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpBytesSentMsg;
|
|
PERF_COUNTER_DEFINITION SmtpBytesSentMsgPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpBytesRcvdMsg;
|
|
PERF_COUNTER_DEFINITION SmtpBytesRcvdMsgPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpBytesMsg;
|
|
PERF_COUNTER_DEFINITION SmtpBytesMsgPerSec;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpMsgRcvdTtl;
|
|
PERF_COUNTER_DEFINITION SmtpMsgRcvdPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpAvgRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpBaseAvgRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpPctLclRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpBasePctLclRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpPctRmtRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpBasePctRmtRcptsPerMsgRcvd;
|
|
PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedSize;
|
|
PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedCAddr;
|
|
PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedMail;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpMsgDlvrTtl;
|
|
PERF_COUNTER_DEFINITION SmtpMsgDlvrPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpMsgDlvrRetriesTtl;
|
|
PERF_COUNTER_DEFINITION SmtpAvgRetriesPerMsgDlvr;
|
|
PERF_COUNTER_DEFINITION SmtpBaseAvgRetriesPerMsgDlvr;
|
|
PERF_COUNTER_DEFINITION SmtpMsgFwdTtl;
|
|
PERF_COUNTER_DEFINITION SmtpMsgFwdPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpNdrGenerated;
|
|
PERF_COUNTER_DEFINITION SmtpLocalQLength;
|
|
PERF_COUNTER_DEFINITION SmtpRetryQLength;
|
|
PERF_COUNTER_DEFINITION SmtpNumMailFileHandles;
|
|
PERF_COUNTER_DEFINITION SmtpNumQueueFileHandles;
|
|
PERF_COUNTER_DEFINITION SmtpCatQLength;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpMsgSentTtl;
|
|
PERF_COUNTER_DEFINITION SmtpMsgSentPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpMsgSendRetriesTtl;
|
|
PERF_COUNTER_DEFINITION SmtpAvgRetriesPerMsgSend;
|
|
PERF_COUNTER_DEFINITION SmtpBaseAvgRetriesPerMsgSend;
|
|
PERF_COUNTER_DEFINITION SmtpAvgRcptsPerMsgSent;
|
|
PERF_COUNTER_DEFINITION SmtpBaseAvgRcptsPerMsgSent;
|
|
PERF_COUNTER_DEFINITION SmtpRemoteQLength;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpDnsQueriesTtl;
|
|
PERF_COUNTER_DEFINITION SmtpDnsQueriesPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpRemoteRetryQueueLength;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpConnInTtl;
|
|
PERF_COUNTER_DEFINITION SmtpConnInCurr;
|
|
PERF_COUNTER_DEFINITION SmtpConnOutTtl;
|
|
PERF_COUNTER_DEFINITION SmtpConnOutCurr;
|
|
PERF_COUNTER_DEFINITION SmtpConnOutRefused;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpErrTtl;
|
|
PERF_COUNTER_DEFINITION SmtpErrPerSec;
|
|
|
|
PERF_COUNTER_DEFINITION SmtpDirectoryDropsTtl;
|
|
PERF_COUNTER_DEFINITION SmtpDirectoryDropsPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpRoutingTblLookupsTtl;
|
|
PERF_COUNTER_DEFINITION SmtpRoutingTblLookupsPerSec;
|
|
PERF_COUNTER_DEFINITION SmtpETRNMsgsTtl;
|
|
PERF_COUNTER_DEFINITION SmtpETRNMsgsPerSec;
|
|
|
|
PERF_COUNTER_DEFINITION MsgsBadmailNoRecipients;
|
|
PERF_COUNTER_DEFINITION MsgsBadmailHopCountExceeded;
|
|
PERF_COUNTER_DEFINITION MsgsBadmailFailureGeneral;
|
|
PERF_COUNTER_DEFINITION MsgsBadmailBadPickupFile;
|
|
PERF_COUNTER_DEFINITION MsgsBadmailEvent;
|
|
PERF_COUNTER_DEFINITION MsgsBadmailNdrOfDsn;
|
|
PERF_COUNTER_DEFINITION MsgsPendingRouting;
|
|
PERF_COUNTER_DEFINITION MsgsPendingUnreachableLink;
|
|
PERF_COUNTER_DEFINITION SubmittedMessages;
|
|
PERF_COUNTER_DEFINITION DSNFailures;
|
|
PERF_COUNTER_DEFINITION MsgsInLocalDelivery;
|
|
|
|
PERF_COUNTER_DEFINITION CatSubmissions;
|
|
PERF_COUNTER_DEFINITION CatSubmissionsPerSec;
|
|
PERF_COUNTER_DEFINITION CatCompletions;
|
|
PERF_COUNTER_DEFINITION CatCompletionsPerSec;
|
|
PERF_COUNTER_DEFINITION CatCurrentCategorizations;
|
|
PERF_COUNTER_DEFINITION CatSucceededCategorizations;
|
|
PERF_COUNTER_DEFINITION CatHardFailures;
|
|
PERF_COUNTER_DEFINITION CatRetryFailures;
|
|
PERF_COUNTER_DEFINITION CatOutOfMemoryFailures;
|
|
PERF_COUNTER_DEFINITION CatDsLogonFailures;
|
|
PERF_COUNTER_DEFINITION CatDsConnectionFailures;
|
|
PERF_COUNTER_DEFINITION CatGenericRetryFailures;
|
|
PERF_COUNTER_DEFINITION CatMsgsOut;
|
|
PERF_COUNTER_DEFINITION CatMsgsCreated;
|
|
PERF_COUNTER_DEFINITION CatMsgsAborted;
|
|
PERF_COUNTER_DEFINITION CatRecipsPreCat;
|
|
PERF_COUNTER_DEFINITION CatRecipsPostCat;
|
|
PERF_COUNTER_DEFINITION CatRecipsNDRd;
|
|
PERF_COUNTER_DEFINITION CatRecipsUnresolved;
|
|
PERF_COUNTER_DEFINITION CatRecipsAmbiguous;
|
|
PERF_COUNTER_DEFINITION CatRecipsIllegal;
|
|
PERF_COUNTER_DEFINITION CatRecipsLoop;
|
|
PERF_COUNTER_DEFINITION CatRecipsGenericFailure;
|
|
PERF_COUNTER_DEFINITION CatRecipsInMemory;
|
|
PERF_COUNTER_DEFINITION CatSendersUnresolved;
|
|
PERF_COUNTER_DEFINITION CatSendersAmbiguous;
|
|
PERF_COUNTER_DEFINITION CatAddressLookups;
|
|
PERF_COUNTER_DEFINITION CatAddressLookupsPerSec;
|
|
PERF_COUNTER_DEFINITION CatAddressCompletions;
|
|
PERF_COUNTER_DEFINITION CatAddressCompletionsPerSec;
|
|
PERF_COUNTER_DEFINITION CatAddressLookupsNotFound;
|
|
PERF_COUNTER_DEFINITION CatMailMsgDuplicateCollisions;
|
|
PERF_COUNTER_DEFINITION CatLDAPConnections;
|
|
PERF_COUNTER_DEFINITION CatLDAPConnectionFailures;
|
|
PERF_COUNTER_DEFINITION CatLDAPOpenConnections;
|
|
PERF_COUNTER_DEFINITION CatLDAPBinds;
|
|
PERF_COUNTER_DEFINITION CatLDAPBindFailures;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearches;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearchesPerSec;
|
|
PERF_COUNTER_DEFINITION CatLDAPPagedSearches;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearchFailures;
|
|
PERF_COUNTER_DEFINITION CatLDAPPagedSearchFailures;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearchesCompleted;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearchesCompletedPerSec;
|
|
PERF_COUNTER_DEFINITION CatLDAPPagedSearchesCompleted;
|
|
PERF_COUNTER_DEFINITION CatLDAPSearchesCompeltedFailure;
|
|
PERF_COUNTER_DEFINITION CatLDAPPagedSearchesCompletedFailure;
|
|
PERF_COUNTER_DEFINITION CatLDAPGeneralCompletionFailure;
|
|
PERF_COUNTER_DEFINITION CatLDAPAbandonedSearches;
|
|
PERF_COUNTER_DEFINITION CatLDAPPendingSearches;
|
|
|
|
} SMTP_DATA_DEFINITION;
|
|
|
|
|
|
extern SMTP_DATA_DEFINITION SmtpDataDefinition;
|
|
extern SMTP_INSTANCE_DEFINITION SmtpInstanceDefinition;
|
|
|
|
#define NUMBER_OF_SMTP_COUNTERS ((sizeof(SMTP_DATA_DEFINITION) - \
|
|
sizeof(PERF_OBJECT_TYPE)) / \
|
|
sizeof(PERF_COUNTER_DEFINITION))
|
|
|
|
|
|
//
|
|
// Restore default packing & alignment.
|
|
//
|
|
|
|
#pragma pack()
|
|
|
|
|
|
#endif // _SMTPDATA_H_
|
|
|