windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/smtp/inc/smtpdata.h
2020-09-26 16:20:57 +08:00

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_