Source code of Windows XP (NT5)
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.

356 lines
20 KiB

  1. //#---------------------------------------------------------------
  2. // File: smtpdata.h
  3. //
  4. // Synopsis: Extensible object definitions for the SMTP
  5. // Server's counter objects & counters.
  6. //
  7. // Copyright (C) 1995 Microsoft Corporation
  8. // All rights reserved.
  9. //
  10. // Authors: toddch - based on msn sources by rkamicar, keithmo
  11. // dhowell - added Instance Support for K2
  12. //----------------------------------------------------------------
  13. #ifndef _SMTPDATA_H_
  14. #define _SMTPDATA_H_
  15. //
  16. // This structure is used to ensure the first counter is properly
  17. // aligned. Unfortunately, since PERF_COUNTER_BLOCK consists
  18. // of just a single DWORD, any unsigned __int64s that immediately
  19. // follow will not be aligned properly.
  20. //
  21. // This structure requires "natural" packing & alignment (probably
  22. // quad-word, especially on Alpha). Ergo, keep it out of the
  23. // #pragma pack(4) scope below.
  24. //
  25. typedef struct _SMTP_COUNTER_BLOCK
  26. {
  27. PERF_COUNTER_BLOCK PerfCounterBlock;
  28. unsigned __int64 DummyEntryForAlignmentPurposesOnly;
  29. } SMTP_COUNTER_BLOCK;
  30. #define INSTANCE_NAME_SIZE 20
  31. typedef WCHAR SMTP_INSTANCE_NAME[INSTANCE_NAME_SIZE];
  32. typedef struct _SMTP_INSTANCE_DEFINITION
  33. {
  34. PERF_INSTANCE_DEFINITION PerfInstanceDef;
  35. SMTP_INSTANCE_NAME InstanceName;
  36. } SMTP_INSTANCE_DEFINITION;
  37. //
  38. // The routines that load these structures assume that all fields
  39. // are DWORD packed & aligned.
  40. //
  41. #pragma pack(4)
  42. //
  43. // Offsets within a PERF_COUNTER_BLOCK.
  44. //
  45. #define SMTP_BYTES_SENT_TTL_OFFSET sizeof(SMTP_COUNTER_BLOCK)
  46. #define SMTP_BYTES_SENT_PER_SEC_OFFSET (SMTP_BYTES_SENT_TTL_OFFSET + sizeof(unsigned __int64))
  47. #define SMTP_BYTES_RCVD_TTL_OFFSET (SMTP_BYTES_SENT_PER_SEC_OFFSET + sizeof(unsigned __int64))
  48. #define SMTP_BYTES_RCVD_PER_SEC_OFFSET (SMTP_BYTES_RCVD_TTL_OFFSET + sizeof(unsigned __int64))
  49. #define SMTP_BYTES_TTL_OFFSET (SMTP_BYTES_RCVD_PER_SEC_OFFSET + sizeof(unsigned __int64))
  50. #define SMTP_BYTES_TTL_PER_SEC_OFFSET (SMTP_BYTES_TTL_OFFSET + sizeof(unsigned __int64))
  51. #define SMTP_BYTES_SENT_MSG_OFFSET (SMTP_BYTES_TTL_PER_SEC_OFFSET + sizeof(unsigned __int64))
  52. #define SMTP_BYTES_SENT_MSG_PER_SEC_OFFSET (SMTP_BYTES_SENT_MSG_OFFSET + sizeof(unsigned __int64))
  53. #define SMTP_BYTES_RCVD_MSG_OFFSET (SMTP_BYTES_SENT_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
  54. #define SMTP_BYTES_RCVD_MSG_PER_SEC_OFFSET (SMTP_BYTES_RCVD_MSG_OFFSET + sizeof(unsigned __int64))
  55. #define SMTP_BYTES_MSG_OFFSET (SMTP_BYTES_RCVD_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
  56. #define SMTP_BYTES_MSG_PER_SEC_OFFSET (SMTP_BYTES_MSG_OFFSET + sizeof(unsigned __int64))
  57. #define SMTP_MSG_RCVD_TTL_OFFSET (SMTP_BYTES_MSG_PER_SEC_OFFSET + sizeof(unsigned __int64))
  58. #define SMTP_MSG_RCVD_PER_SEC_OFFSET (SMTP_MSG_RCVD_TTL_OFFSET + sizeof(DWORD))
  59. #define SMTP_AVG_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_MSG_RCVD_PER_SEC_OFFSET + sizeof(DWORD))
  60. #define SMTP_BASE_AVG_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_AVG_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  61. #define SMTP_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_BASE_AVG_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  62. #define SMTP_BASE_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  63. #define SMTP_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_BASE_PCT_LCL_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  64. #define SMTP_BASE_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET (SMTP_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  65. #define SMTP_MSG_RCVD_REFUSED_SIZE_OFFSET (SMTP_BASE_PCT_RMT_RCPTS_PER_MSG_RCVD_OFFSET + sizeof(DWORD))
  66. #define SMTP_MSG_RCVD_REFUSED_CADDR_OFFSET (SMTP_MSG_RCVD_REFUSED_SIZE_OFFSET + sizeof(DWORD))
  67. #define SMTP_MSG_RCVD_REFUSED_MAIL_OFFSET (SMTP_MSG_RCVD_REFUSED_CADDR_OFFSET + sizeof(DWORD))
  68. #define SMTP_MSG_DLVR_TTL_OFFSET (SMTP_MSG_RCVD_REFUSED_MAIL_OFFSET + sizeof(DWORD))
  69. #define SMTP_MSG_DLVR_PER_SEC_OFFSET (SMTP_MSG_DLVR_TTL_OFFSET + sizeof(DWORD))
  70. #define SMTP_MSG_DLVR_RETRIES_TTL_OFFSET (SMTP_MSG_DLVR_PER_SEC_OFFSET + sizeof(DWORD))
  71. #define SMTP_AVG_RETRIES_PER_MSG_DLVR_OFFSET (SMTP_MSG_DLVR_RETRIES_TTL_OFFSET + sizeof(DWORD))
  72. #define SMTP_BASE_AVG_RETRIES_PER_MSG_DLVR_OFFSET (SMTP_AVG_RETRIES_PER_MSG_DLVR_OFFSET + sizeof(DWORD))
  73. #define SMTP_MSG_FWD_TTL_OFFSET (SMTP_BASE_AVG_RETRIES_PER_MSG_DLVR_OFFSET + sizeof(DWORD))
  74. #define SMTP_MSG_FWD_PER_SEC_OFFSET (SMTP_MSG_FWD_TTL_OFFSET + sizeof(DWORD))
  75. #define SMTP_NDR_GENERATED_OFFSET (SMTP_MSG_FWD_PER_SEC_OFFSET + sizeof(DWORD))
  76. #define SMTP_LOCALQ_LENGTH_OFFSET (SMTP_NDR_GENERATED_OFFSET + sizeof(DWORD))
  77. #define SMTP_RETRYQ_LENGTH_OFFSET (SMTP_LOCALQ_LENGTH_OFFSET + sizeof(DWORD))
  78. #define SMTP_NUM_MAILFILE_HANDLES_OFFSET (SMTP_RETRYQ_LENGTH_OFFSET + sizeof(DWORD))
  79. #define SMTP_NUM_QUEUEFILE_HANDLES_OFFSET (SMTP_NUM_MAILFILE_HANDLES_OFFSET + sizeof(DWORD))
  80. #define SMTP_CATQ_LENGTH_OFFSET (SMTP_NUM_QUEUEFILE_HANDLES_OFFSET + sizeof(DWORD))
  81. #define SMTP_MSG_SENT_TTL_OFFSET (SMTP_CATQ_LENGTH_OFFSET + sizeof(DWORD))
  82. #define SMTP_MSG_SENT_PER_SEC_OFFSET (SMTP_MSG_SENT_TTL_OFFSET + sizeof(DWORD))
  83. #define SMTP_MSG_SEND_RETRIES_TTL_OFFSET (SMTP_MSG_SENT_PER_SEC_OFFSET + sizeof(DWORD))
  84. #define SMTP_AVG_RETRIES_PER_MSG_SEND_OFFSET (SMTP_MSG_SEND_RETRIES_TTL_OFFSET + sizeof(DWORD))
  85. #define SMTP_BASE_AVG_RETRIES_PER_MSG_SEND_OFFSET (SMTP_AVG_RETRIES_PER_MSG_SEND_OFFSET + sizeof(DWORD))
  86. #define SMTP_AVG_RCPTS_PER_MSG_SENT_OFFSET (SMTP_BASE_AVG_RETRIES_PER_MSG_SEND_OFFSET + sizeof(DWORD))
  87. #define SMTP_BASE_AVG_RCPTS_PER_MSG_SENT_OFFSET (SMTP_AVG_RCPTS_PER_MSG_SENT_OFFSET + sizeof(DWORD))
  88. #define SMTP_REMOTEQ_LENGTH_OFFSET (SMTP_BASE_AVG_RCPTS_PER_MSG_SENT_OFFSET + sizeof(DWORD))
  89. #define SMTP_DNS_QUERIES_TTL_OFFSET (SMTP_REMOTEQ_LENGTH_OFFSET + sizeof(DWORD))
  90. #define SMTP_DNS_QUERIES_PER_SEC_OFFSET (SMTP_DNS_QUERIES_TTL_OFFSET + sizeof(DWORD))
  91. #define SMTP_REMOTE_RETRY_QUEUE_LENGTH_OFFSET (SMTP_DNS_QUERIES_PER_SEC_OFFSET + sizeof(DWORD))
  92. #define SMTP_CONN_IN_TTL_OFFSET (SMTP_REMOTE_RETRY_QUEUE_LENGTH_OFFSET + sizeof(DWORD))
  93. #define SMTP_CONN_IN_CURR_OFFSET (SMTP_CONN_IN_TTL_OFFSET + sizeof(DWORD))
  94. #define SMTP_CONN_OUT_TTL_OFFSET (SMTP_CONN_IN_CURR_OFFSET + sizeof(DWORD))
  95. #define SMTP_CONN_OUT_CURR_OFFSET (SMTP_CONN_OUT_TTL_OFFSET + sizeof(DWORD))
  96. #define SMTP_CONN_OUT_REFUSED_OFFSET (SMTP_CONN_OUT_CURR_OFFSET + sizeof(DWORD))
  97. #define SMTP_ERR_TTL_OFFSET (SMTP_CONN_OUT_REFUSED_OFFSET + sizeof(DWORD))
  98. #define SMTP_ERR_PER_SEC_OFFSET (SMTP_ERR_TTL_OFFSET + sizeof(DWORD))
  99. /*** HIT A COMPILER LIMIT ON OPEN BRACKETS, HAD TO REMOVE SOME BRAKETS ***/
  100. #define SMTP_DIR_DROPS_OFFSET SMTP_ERR_PER_SEC_OFFSET + sizeof(DWORD)
  101. #define SMTP_DIR_DROPS_PER_SEC_OFFSET SMTP_DIR_DROPS_OFFSET + sizeof(DWORD)
  102. #define SMTP_RT_LOOKUPS_OFFSET SMTP_DIR_DROPS_PER_SEC_OFFSET + sizeof(DWORD)
  103. #define SMTP_RT_LOOKUPS_PER_SEC_OFFSET SMTP_RT_LOOKUPS_OFFSET + sizeof(DWORD)
  104. #define SMTP_ETRN_MSGS_OFFSET SMTP_RT_LOOKUPS_PER_SEC_OFFSET + sizeof(DWORD)
  105. #define SMTP_ETRN_MSGS_PER_SEC_OFFSET SMTP_ETRN_MSGS_OFFSET + sizeof(DWORD)
  106. #define SMTP_MSG_BADMAIL_NO_RECIPIENTS_OFFSET SMTP_ETRN_MSGS_PER_SEC_OFFSET + sizeof(DWORD)
  107. #define SMTP_MSG_BADMAIL_HOP_COUNT_EXCEEDED_OFFSET SMTP_MSG_BADMAIL_NO_RECIPIENTS_OFFSET + sizeof(DWORD)
  108. #define SMTP_MSG_BADMAIL_FAILURE_GENERAL_OFFSET SMTP_MSG_BADMAIL_HOP_COUNT_EXCEEDED_OFFSET + sizeof(DWORD)
  109. #define SMTP_MSG_BADMAIL_BAD_PICKUP_FILE_OFFSET SMTP_MSG_BADMAIL_FAILURE_GENERAL_OFFSET + sizeof(DWORD)
  110. #define SMTP_MSG_BADMAIL_EVENT_OFFSET SMTP_MSG_BADMAIL_BAD_PICKUP_FILE_OFFSET + sizeof(DWORD)
  111. #define SMTP_MSG_BADMAIL_NDR_OF_DSN_OFFSET SMTP_MSG_BADMAIL_EVENT_OFFSET + sizeof(DWORD)
  112. #define SMTP_MSG_PENDING_ROUTING_OFFSET SMTP_MSG_BADMAIL_NDR_OF_DSN_OFFSET + sizeof(DWORD)
  113. #define SMTP_MSG_PENDING_UNREACHABLE_LINK_OFFSET SMTP_MSG_PENDING_ROUTING_OFFSET + sizeof(DWORD)
  114. #define SMTP_SUBMITTED_MESSAGES_OFFSET SMTP_MSG_PENDING_UNREACHABLE_LINK_OFFSET + sizeof(DWORD)
  115. #define SMTP_DSN_FAILURES_OFFSET SMTP_SUBMITTED_MESSAGES_OFFSET + sizeof(DWORD)
  116. #define SMTP_MSG_IN_LOCAL_DELIVERY_OFFSET SMTP_DSN_FAILURES_OFFSET + sizeof(DWORD)
  117. #define SMTP_CATSUBMISSIONS_OFFSET SMTP_MSG_IN_LOCAL_DELIVERY_OFFSET + sizeof(DWORD)
  118. #define SMTP_CATCOMPLETIONS_OFFSET SMTP_CATSUBMISSIONS_OFFSET + sizeof(DWORD)
  119. #define SMTP_CURRENTCATEGORIZATIONS_OFFSET SMTP_CATCOMPLETIONS_OFFSET + sizeof(DWORD)
  120. #define SMTP_SUCCEEDEDCATEGORIZATIONS_OFFSET SMTP_CURRENTCATEGORIZATIONS_OFFSET + sizeof(DWORD)
  121. #define SMTP_HARDFAILURECATEGORIZATIONS_OFFSET SMTP_SUCCEEDEDCATEGORIZATIONS_OFFSET + sizeof(DWORD)
  122. #define SMTP_RETRYFAILURECATEGORIZATIONS_OFFSET SMTP_HARDFAILURECATEGORIZATIONS_OFFSET + sizeof(DWORD)
  123. #define SMTP_RETRYOUTOFMEMORY_OFFSET SMTP_RETRYFAILURECATEGORIZATIONS_OFFSET + sizeof(DWORD)
  124. #define SMTP_RETRYDSLOGON_OFFSET SMTP_RETRYOUTOFMEMORY_OFFSET + sizeof(DWORD)
  125. #define SMTP_RETRYDSCONNECTION_OFFSET SMTP_RETRYDSLOGON_OFFSET + sizeof(DWORD)
  126. #define SMTP_RETRYGENERIC_OFFSET SMTP_RETRYDSCONNECTION_OFFSET + sizeof(DWORD)
  127. #define SMTP_MESSAGESSUBMITTEDTOQUEUEING_OFFSET SMTP_RETRYGENERIC_OFFSET + sizeof(DWORD)
  128. #define SMTP_MESSAGESCREATED_OFFSET SMTP_MESSAGESSUBMITTEDTOQUEUEING_OFFSET + sizeof(DWORD)
  129. #define SMTP_MESSAGESABORTED_OFFSET SMTP_MESSAGESCREATED_OFFSET + sizeof(DWORD)
  130. #define SMTP_PRECATRECIPIENTS_OFFSET SMTP_MESSAGESABORTED_OFFSET + sizeof(DWORD)
  131. #define SMTP_POSTCATRECIPIENTS_OFFSET SMTP_PRECATRECIPIENTS_OFFSET + sizeof(DWORD)
  132. #define SMTP_NDRDRECIPIENTS_OFFSET SMTP_POSTCATRECIPIENTS_OFFSET + sizeof(DWORD)
  133. #define SMTP_UNRESOLVEDRECIPIENTS_OFFSET SMTP_NDRDRECIPIENTS_OFFSET + sizeof(DWORD)
  134. #define SMTP_AMBIGUOUSRECIPIENTS_OFFSET SMTP_UNRESOLVEDRECIPIENTS_OFFSET + sizeof(DWORD)
  135. #define SMTP_ILLEGALRECIPIENTS_OFFSET SMTP_AMBIGUOUSRECIPIENTS_OFFSET + sizeof(DWORD)
  136. #define SMTP_LOOPRECIPIENTS_OFFSET SMTP_ILLEGALRECIPIENTS_OFFSET + sizeof(DWORD)
  137. #define SMTP_GENERICFAILURERECIPIENTS_OFFSET SMTP_LOOPRECIPIENTS_OFFSET + sizeof(DWORD)
  138. #define SMTP_RECIPSINMEMORY_OFFSET SMTP_GENERICFAILURERECIPIENTS_OFFSET + sizeof(DWORD)
  139. #define SMTP_UNRESOLVEDSENDERS_OFFSET SMTP_RECIPSINMEMORY_OFFSET + sizeof(DWORD)
  140. #define SMTP_AMBIGUOUSSENDERS_OFFSET SMTP_UNRESOLVEDSENDERS_OFFSET + sizeof(DWORD)
  141. #define SMTP_ADDRESSLOOKUPS_OFFSET SMTP_AMBIGUOUSSENDERS_OFFSET + sizeof(DWORD)
  142. #define SMTP_ADDRESSLOOKUPCOMPLETIONS_OFFSET SMTP_ADDRESSLOOKUPS_OFFSET + sizeof(DWORD)
  143. #define SMTP_ADDRESSLOOKUPSNOTFOUND_OFFSET SMTP_ADDRESSLOOKUPCOMPLETIONS_OFFSET + sizeof(DWORD)
  144. #define SMTP_MAILMSGDUPLICATECOLLISIONS_OFFSET SMTP_ADDRESSLOOKUPSNOTFOUND_OFFSET + sizeof(DWORD)
  145. #define SMTP_CONNECTIONS_OFFSET SMTP_MAILMSGDUPLICATECOLLISIONS_OFFSET + sizeof(DWORD)
  146. #define SMTP_CONNECTFAILURES_OFFSET SMTP_CONNECTIONS_OFFSET + sizeof(DWORD)
  147. #define SMTP_OPENCONNECTIONS_OFFSET SMTP_CONNECTFAILURES_OFFSET + sizeof(DWORD)
  148. #define SMTP_BINDS_OFFSET SMTP_OPENCONNECTIONS_OFFSET + sizeof(DWORD)
  149. #define SMTP_BINDFAILURES_OFFSET SMTP_BINDS_OFFSET + sizeof(DWORD)
  150. #define SMTP_SEARCHES_OFFSET SMTP_BINDFAILURES_OFFSET + sizeof(DWORD)
  151. #define SMTP_PAGEDSEARCHES_OFFSET SMTP_SEARCHES_OFFSET + sizeof(DWORD)
  152. #define SMTP_SEARCHFAILURES_OFFSET SMTP_PAGEDSEARCHES_OFFSET + sizeof(DWORD)
  153. #define SMTP_PAGEDSEARCHFAILURES_OFFSET SMTP_SEARCHFAILURES_OFFSET + sizeof(DWORD)
  154. #define SMTP_SEARCHESCOMPLETED_OFFSET SMTP_PAGEDSEARCHFAILURES_OFFSET + sizeof(DWORD)
  155. #define SMTP_PAGEDSEARCHESCOMPLETED_OFFSET SMTP_SEARCHESCOMPLETED_OFFSET + sizeof(DWORD)
  156. #define SMTP_SEARCHCOMPLETIONFAILURES_OFFSET SMTP_PAGEDSEARCHESCOMPLETED_OFFSET + sizeof(DWORD)
  157. #define SMTP_PAGEDSEARCHCOMPLETIONFAILURES_OFFSET SMTP_SEARCHCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
  158. #define SMTP_GENERALCOMPLETIONFAILURES_OFFSET SMTP_PAGEDSEARCHCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
  159. #define SMTP_ABANDONEDSEARCHES_OFFSET SMTP_GENERALCOMPLETIONFAILURES_OFFSET + sizeof(DWORD)
  160. #define SMTP_PENDINGSEARCHES_OFFSET SMTP_ABANDONEDSEARCHES_OFFSET + sizeof(DWORD)
  161. // This needs to be here to pad out the number of bytes returned to
  162. // be divisible by 8. If you add new counters please check eventvwr to
  163. // make sure that you don't have warnings from Perflib saying that your
  164. // counters aren't properly padded. If you do get these warnings then
  165. // comment out this item
  166. #define SMTP_PADDING_OFFSET SMTP_PENDINGSEARCHES_OFFSET + sizeof(DWORD)
  167. #define SIZE_OF_SMTP_PERFORMANCE_DATA SMTP_PADDING_OFFSET + sizeof(DWORD)
  168. //
  169. // The counter structure returned.
  170. //
  171. typedef struct _SMTP_DATA_DEFINITION
  172. {
  173. PERF_OBJECT_TYPE SmtpObjectType;
  174. PERF_COUNTER_DEFINITION SmtpBytesSentTtl;
  175. PERF_COUNTER_DEFINITION SmtpBytesSentPerSec;
  176. PERF_COUNTER_DEFINITION SmtpBytesRcvdTtl;
  177. PERF_COUNTER_DEFINITION SmtpBytesRcvdPerSec;
  178. PERF_COUNTER_DEFINITION SmtpBytesTtl;
  179. PERF_COUNTER_DEFINITION SmtpBytesTtlPerSec;
  180. PERF_COUNTER_DEFINITION SmtpBytesSentMsg;
  181. PERF_COUNTER_DEFINITION SmtpBytesSentMsgPerSec;
  182. PERF_COUNTER_DEFINITION SmtpBytesRcvdMsg;
  183. PERF_COUNTER_DEFINITION SmtpBytesRcvdMsgPerSec;
  184. PERF_COUNTER_DEFINITION SmtpBytesMsg;
  185. PERF_COUNTER_DEFINITION SmtpBytesMsgPerSec;
  186. PERF_COUNTER_DEFINITION SmtpMsgRcvdTtl;
  187. PERF_COUNTER_DEFINITION SmtpMsgRcvdPerSec;
  188. PERF_COUNTER_DEFINITION SmtpAvgRcptsPerMsgRcvd;
  189. PERF_COUNTER_DEFINITION SmtpBaseAvgRcptsPerMsgRcvd;
  190. PERF_COUNTER_DEFINITION SmtpPctLclRcptsPerMsgRcvd;
  191. PERF_COUNTER_DEFINITION SmtpBasePctLclRcptsPerMsgRcvd;
  192. PERF_COUNTER_DEFINITION SmtpPctRmtRcptsPerMsgRcvd;
  193. PERF_COUNTER_DEFINITION SmtpBasePctRmtRcptsPerMsgRcvd;
  194. PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedSize;
  195. PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedCAddr;
  196. PERF_COUNTER_DEFINITION SmtpMsgRcvdRefusedMail;
  197. PERF_COUNTER_DEFINITION SmtpMsgDlvrTtl;
  198. PERF_COUNTER_DEFINITION SmtpMsgDlvrPerSec;
  199. PERF_COUNTER_DEFINITION SmtpMsgDlvrRetriesTtl;
  200. PERF_COUNTER_DEFINITION SmtpAvgRetriesPerMsgDlvr;
  201. PERF_COUNTER_DEFINITION SmtpBaseAvgRetriesPerMsgDlvr;
  202. PERF_COUNTER_DEFINITION SmtpMsgFwdTtl;
  203. PERF_COUNTER_DEFINITION SmtpMsgFwdPerSec;
  204. PERF_COUNTER_DEFINITION SmtpNdrGenerated;
  205. PERF_COUNTER_DEFINITION SmtpLocalQLength;
  206. PERF_COUNTER_DEFINITION SmtpRetryQLength;
  207. PERF_COUNTER_DEFINITION SmtpNumMailFileHandles;
  208. PERF_COUNTER_DEFINITION SmtpNumQueueFileHandles;
  209. PERF_COUNTER_DEFINITION SmtpCatQLength;
  210. PERF_COUNTER_DEFINITION SmtpMsgSentTtl;
  211. PERF_COUNTER_DEFINITION SmtpMsgSentPerSec;
  212. PERF_COUNTER_DEFINITION SmtpMsgSendRetriesTtl;
  213. PERF_COUNTER_DEFINITION SmtpAvgRetriesPerMsgSend;
  214. PERF_COUNTER_DEFINITION SmtpBaseAvgRetriesPerMsgSend;
  215. PERF_COUNTER_DEFINITION SmtpAvgRcptsPerMsgSent;
  216. PERF_COUNTER_DEFINITION SmtpBaseAvgRcptsPerMsgSent;
  217. PERF_COUNTER_DEFINITION SmtpRemoteQLength;
  218. PERF_COUNTER_DEFINITION SmtpDnsQueriesTtl;
  219. PERF_COUNTER_DEFINITION SmtpDnsQueriesPerSec;
  220. PERF_COUNTER_DEFINITION SmtpRemoteRetryQueueLength;
  221. PERF_COUNTER_DEFINITION SmtpConnInTtl;
  222. PERF_COUNTER_DEFINITION SmtpConnInCurr;
  223. PERF_COUNTER_DEFINITION SmtpConnOutTtl;
  224. PERF_COUNTER_DEFINITION SmtpConnOutCurr;
  225. PERF_COUNTER_DEFINITION SmtpConnOutRefused;
  226. PERF_COUNTER_DEFINITION SmtpErrTtl;
  227. PERF_COUNTER_DEFINITION SmtpErrPerSec;
  228. PERF_COUNTER_DEFINITION SmtpDirectoryDropsTtl;
  229. PERF_COUNTER_DEFINITION SmtpDirectoryDropsPerSec;
  230. PERF_COUNTER_DEFINITION SmtpRoutingTblLookupsTtl;
  231. PERF_COUNTER_DEFINITION SmtpRoutingTblLookupsPerSec;
  232. PERF_COUNTER_DEFINITION SmtpETRNMsgsTtl;
  233. PERF_COUNTER_DEFINITION SmtpETRNMsgsPerSec;
  234. PERF_COUNTER_DEFINITION MsgsBadmailNoRecipients;
  235. PERF_COUNTER_DEFINITION MsgsBadmailHopCountExceeded;
  236. PERF_COUNTER_DEFINITION MsgsBadmailFailureGeneral;
  237. PERF_COUNTER_DEFINITION MsgsBadmailBadPickupFile;
  238. PERF_COUNTER_DEFINITION MsgsBadmailEvent;
  239. PERF_COUNTER_DEFINITION MsgsBadmailNdrOfDsn;
  240. PERF_COUNTER_DEFINITION MsgsPendingRouting;
  241. PERF_COUNTER_DEFINITION MsgsPendingUnreachableLink;
  242. PERF_COUNTER_DEFINITION SubmittedMessages;
  243. PERF_COUNTER_DEFINITION DSNFailures;
  244. PERF_COUNTER_DEFINITION MsgsInLocalDelivery;
  245. PERF_COUNTER_DEFINITION CatSubmissions;
  246. PERF_COUNTER_DEFINITION CatSubmissionsPerSec;
  247. PERF_COUNTER_DEFINITION CatCompletions;
  248. PERF_COUNTER_DEFINITION CatCompletionsPerSec;
  249. PERF_COUNTER_DEFINITION CatCurrentCategorizations;
  250. PERF_COUNTER_DEFINITION CatSucceededCategorizations;
  251. PERF_COUNTER_DEFINITION CatHardFailures;
  252. PERF_COUNTER_DEFINITION CatRetryFailures;
  253. PERF_COUNTER_DEFINITION CatOutOfMemoryFailures;
  254. PERF_COUNTER_DEFINITION CatDsLogonFailures;
  255. PERF_COUNTER_DEFINITION CatDsConnectionFailures;
  256. PERF_COUNTER_DEFINITION CatGenericRetryFailures;
  257. PERF_COUNTER_DEFINITION CatMsgsOut;
  258. PERF_COUNTER_DEFINITION CatMsgsCreated;
  259. PERF_COUNTER_DEFINITION CatMsgsAborted;
  260. PERF_COUNTER_DEFINITION CatRecipsPreCat;
  261. PERF_COUNTER_DEFINITION CatRecipsPostCat;
  262. PERF_COUNTER_DEFINITION CatRecipsNDRd;
  263. PERF_COUNTER_DEFINITION CatRecipsUnresolved;
  264. PERF_COUNTER_DEFINITION CatRecipsAmbiguous;
  265. PERF_COUNTER_DEFINITION CatRecipsIllegal;
  266. PERF_COUNTER_DEFINITION CatRecipsLoop;
  267. PERF_COUNTER_DEFINITION CatRecipsGenericFailure;
  268. PERF_COUNTER_DEFINITION CatRecipsInMemory;
  269. PERF_COUNTER_DEFINITION CatSendersUnresolved;
  270. PERF_COUNTER_DEFINITION CatSendersAmbiguous;
  271. PERF_COUNTER_DEFINITION CatAddressLookups;
  272. PERF_COUNTER_DEFINITION CatAddressLookupsPerSec;
  273. PERF_COUNTER_DEFINITION CatAddressCompletions;
  274. PERF_COUNTER_DEFINITION CatAddressCompletionsPerSec;
  275. PERF_COUNTER_DEFINITION CatAddressLookupsNotFound;
  276. PERF_COUNTER_DEFINITION CatMailMsgDuplicateCollisions;
  277. PERF_COUNTER_DEFINITION CatLDAPConnections;
  278. PERF_COUNTER_DEFINITION CatLDAPConnectionFailures;
  279. PERF_COUNTER_DEFINITION CatLDAPOpenConnections;
  280. PERF_COUNTER_DEFINITION CatLDAPBinds;
  281. PERF_COUNTER_DEFINITION CatLDAPBindFailures;
  282. PERF_COUNTER_DEFINITION CatLDAPSearches;
  283. PERF_COUNTER_DEFINITION CatLDAPSearchesPerSec;
  284. PERF_COUNTER_DEFINITION CatLDAPPagedSearches;
  285. PERF_COUNTER_DEFINITION CatLDAPSearchFailures;
  286. PERF_COUNTER_DEFINITION CatLDAPPagedSearchFailures;
  287. PERF_COUNTER_DEFINITION CatLDAPSearchesCompleted;
  288. PERF_COUNTER_DEFINITION CatLDAPSearchesCompletedPerSec;
  289. PERF_COUNTER_DEFINITION CatLDAPPagedSearchesCompleted;
  290. PERF_COUNTER_DEFINITION CatLDAPSearchesCompeltedFailure;
  291. PERF_COUNTER_DEFINITION CatLDAPPagedSearchesCompletedFailure;
  292. PERF_COUNTER_DEFINITION CatLDAPGeneralCompletionFailure;
  293. PERF_COUNTER_DEFINITION CatLDAPAbandonedSearches;
  294. PERF_COUNTER_DEFINITION CatLDAPPendingSearches;
  295. } SMTP_DATA_DEFINITION;
  296. extern SMTP_DATA_DEFINITION SmtpDataDefinition;
  297. extern SMTP_INSTANCE_DEFINITION SmtpInstanceDefinition;
  298. #define NUMBER_OF_SMTP_COUNTERS ((sizeof(SMTP_DATA_DEFINITION) - \
  299. sizeof(PERF_OBJECT_TYPE)) / \
  300. sizeof(PERF_COUNTER_DEFINITION))
  301. //
  302. // Restore default packing & alignment.
  303. //
  304. #pragma pack()
  305. #endif // _SMTPDATA_H_