//#--------------------------------------------------------------- // 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_