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.

1170 lines
29 KiB

  1. /**********************************************************************/
  2. /** Microsoft Windows NT **/
  3. /** Copyright(c) Microsoft Corp., 1993 **/
  4. /**********************************************************************/
  5. /*
  6. nntpdata.c
  7. Constant data structures for the NNTP Server's counter objects &
  8. counters.
  9. FILE HISTORY:
  10. KeithMo 07-Jun-1993 Created.
  11. */
  12. #include <windows.h>
  13. #include <winperf.h>
  14. #include <nntpctrs.h>
  15. #include <nntpdata.h>
  16. static NNTP_COUNTER_BLOCK1 nntpc1;
  17. static NNTP_COUNTER_BLOCK2 nntpc2;
  18. //
  19. // Initialize the constant portitions of these data structure.
  20. // Certain parts (especially the name/help indices) will be
  21. // updated at initialization time.
  22. //
  23. NNTP_DATA_DEFINITION_OBJECT1 NntpDataDefinitionObject1 =
  24. {
  25. { // NntpObjectType
  26. sizeof(NNTP_DATA_DEFINITION_OBJECT1) + sizeof(NNTP_COUNTER_BLOCK1),
  27. sizeof(NNTP_DATA_DEFINITION_OBJECT1),
  28. sizeof(PERF_OBJECT_TYPE),
  29. NNTP_COUNTER_OBJECT1,
  30. 0,
  31. NNTP_COUNTER_OBJECT1,
  32. 0,
  33. PERF_DETAIL_ADVANCED,
  34. NUMBER_OF_NNTP_COUNTERS_OBJECT1,
  35. 2, // Default = Bytes Total/sec
  36. PERF_NO_INSTANCES,
  37. 0,
  38. { 0, 0 },
  39. { 0, 0 }
  40. },
  41. { // NntpBytesSent
  42. sizeof(PERF_COUNTER_DEFINITION),
  43. NNTP_BYTES_SENT_COUNTER,
  44. 0,
  45. NNTP_BYTES_SENT_COUNTER,
  46. 0,
  47. -4,
  48. PERF_DETAIL_ADVANCED,
  49. PERF_COUNTER_BULK_COUNT,
  50. sizeof(nntpc1.BytesSent),
  51. 0 // assigned in open procedure
  52. },
  53. { // NNTPBytesReceived
  54. sizeof(PERF_COUNTER_DEFINITION),
  55. NNTP_BYTES_RECEIVED_COUNTER,
  56. 0,
  57. NNTP_BYTES_RECEIVED_COUNTER,
  58. 0,
  59. -4,
  60. PERF_DETAIL_ADVANCED,
  61. PERF_COUNTER_BULK_COUNT,
  62. sizeof(nntpc1.BytesReceived),
  63. 0 // assigned in open procedure
  64. },
  65. { // NNTPBytesTotal
  66. sizeof(PERF_COUNTER_DEFINITION),
  67. NNTP_BYTES_TOTAL_COUNTER,
  68. 0,
  69. NNTP_BYTES_TOTAL_COUNTER,
  70. 0,
  71. -4,
  72. PERF_DETAIL_ADVANCED,
  73. PERF_COUNTER_BULK_COUNT,
  74. sizeof(nntpc1.BytesTotal),
  75. 0 // assigned in open procedure
  76. },
  77. { // NntpTotalConnections
  78. sizeof(PERF_COUNTER_DEFINITION),
  79. NNTP_TOTAL_CONNECTIONS_COUNTER,
  80. 0,
  81. NNTP_TOTAL_CONNECTIONS_COUNTER,
  82. 0,
  83. 0,
  84. PERF_DETAIL_ADVANCED,
  85. PERF_COUNTER_RAWCOUNT,
  86. sizeof(nntpc1.TotalConnections),
  87. 0 // assigned in open procedure
  88. },
  89. { // NntpTotalSSLConnections
  90. sizeof(PERF_COUNTER_DEFINITION),
  91. NNTP_TOTAL_SSL_CONNECTIONS_COUNTER,
  92. 0,
  93. NNTP_TOTAL_SSL_CONNECTIONS_COUNTER,
  94. 0,
  95. 0,
  96. PERF_DETAIL_ADVANCED,
  97. PERF_COUNTER_RAWCOUNT,
  98. sizeof(nntpc1.TotalSSLConnections),
  99. 0 // assigned in open procedure
  100. },
  101. { // NntpCurrentConnections
  102. sizeof(PERF_COUNTER_DEFINITION),
  103. NNTP_CURRENT_CONNECTIONS_COUNTER,
  104. 0,
  105. NNTP_CURRENT_CONNECTIONS_COUNTER,
  106. 0,
  107. 0,
  108. PERF_DETAIL_ADVANCED,
  109. PERF_COUNTER_RAWCOUNT,
  110. sizeof(nntpc1.CurrentConnections),
  111. 0 // assigned in open procedure
  112. },
  113. { // NntpMaxConnections
  114. sizeof(PERF_COUNTER_DEFINITION),
  115. NNTP_MAX_CONNECTIONS_COUNTER,
  116. 0,
  117. NNTP_MAX_CONNECTIONS_COUNTER,
  118. 0,
  119. 0,
  120. PERF_DETAIL_ADVANCED,
  121. PERF_COUNTER_RAWCOUNT,
  122. sizeof(nntpc1.MaxConnections),
  123. 0 // assigned in open procedure
  124. },
  125. { // NntpCurrentAnonymous
  126. sizeof(PERF_COUNTER_DEFINITION),
  127. NNTP_CURRENT_ANONYMOUS_COUNTER,
  128. 0,
  129. NNTP_CURRENT_ANONYMOUS_COUNTER,
  130. 0,
  131. 0,
  132. PERF_DETAIL_ADVANCED,
  133. PERF_COUNTER_RAWCOUNT,
  134. sizeof(nntpc1.CurrentAnonymous),
  135. 0 // assigned in open procedure
  136. },
  137. { // NntpCurrentNonAnonymous
  138. sizeof(PERF_COUNTER_DEFINITION),
  139. NNTP_CURRENT_NONANONYMOUS_COUNTER,
  140. 0,
  141. NNTP_CURRENT_NONANONYMOUS_COUNTER,
  142. 0,
  143. 0,
  144. PERF_DETAIL_ADVANCED,
  145. PERF_COUNTER_RAWCOUNT,
  146. sizeof(nntpc1.CurrentNonAnonymous),
  147. 0 // assigned in open procedure
  148. },
  149. { // NntpTotalAnonymous
  150. sizeof(PERF_COUNTER_DEFINITION),
  151. NNTP_TOTAL_ANONYMOUS_COUNTER,
  152. 0,
  153. NNTP_TOTAL_ANONYMOUS_COUNTER,
  154. 0,
  155. 0,
  156. PERF_DETAIL_ADVANCED,
  157. PERF_COUNTER_RAWCOUNT,
  158. sizeof(nntpc1.TotalAnonymous),
  159. 0 // assigned in open procedure
  160. },
  161. { // NntpTotalNonAnonymous
  162. sizeof(PERF_COUNTER_DEFINITION),
  163. NNTP_TOTAL_NONANONYMOUS_COUNTER,
  164. 0,
  165. NNTP_TOTAL_NONANONYMOUS_COUNTER,
  166. 0,
  167. 0,
  168. PERF_DETAIL_ADVANCED,
  169. PERF_COUNTER_RAWCOUNT,
  170. sizeof(nntpc1.TotalNonAnonymous),
  171. 0 // assigned in open procedure
  172. },
  173. { // NntpMaxAnonymous
  174. sizeof(PERF_COUNTER_DEFINITION),
  175. NNTP_MAX_ANONYMOUS_COUNTER,
  176. 0,
  177. NNTP_MAX_ANONYMOUS_COUNTER,
  178. 0,
  179. 0,
  180. PERF_DETAIL_ADVANCED,
  181. PERF_COUNTER_RAWCOUNT,
  182. sizeof(nntpc1.MaxAnonymous),
  183. 0 // assigned in open procedure
  184. },
  185. { // NntpMaxNonAnonymous
  186. sizeof(PERF_COUNTER_DEFINITION),
  187. NNTP_MAX_NONANONYMOUS_COUNTER,
  188. 0,
  189. NNTP_MAX_NONANONYMOUS_COUNTER,
  190. 0,
  191. 0,
  192. PERF_DETAIL_ADVANCED,
  193. PERF_COUNTER_RAWCOUNT,
  194. sizeof(nntpc1.MaxNonAnonymous),
  195. 0 // assigned in open procedure
  196. },
  197. { // NntpTotalOutboundConnects
  198. sizeof(PERF_COUNTER_DEFINITION),
  199. NNTP_TOTAL_OUTBOUND_CONNECTS_COUNTER,
  200. 0,
  201. NNTP_TOTAL_OUTBOUND_CONNECTS_COUNTER,
  202. 0,
  203. 0,
  204. PERF_DETAIL_ADVANCED,
  205. PERF_COUNTER_RAWCOUNT,
  206. sizeof(nntpc1.TotalOutboundConnects),
  207. 0 // assigned in open procedure
  208. },
  209. { // NntpOutboundConnectsFailed
  210. sizeof(PERF_COUNTER_DEFINITION),
  211. NNTP_OUTBOUND_CONNECTS_FAILED_COUNTER,
  212. 0,
  213. NNTP_OUTBOUND_CONNECTS_FAILED_COUNTER,
  214. 0,
  215. 0,
  216. PERF_DETAIL_ADVANCED,
  217. PERF_COUNTER_RAWCOUNT,
  218. sizeof(nntpc1.OutboundConnectsFailed),
  219. 0 // assigned in open procedure
  220. },
  221. { // NntpCurrentOutboundConnects
  222. sizeof(PERF_COUNTER_DEFINITION),
  223. NNTP_CURRENT_OUTBOUND_CONNECTS_COUNTER,
  224. 0,
  225. NNTP_CURRENT_OUTBOUND_CONNECTS_COUNTER,
  226. 0,
  227. 0,
  228. PERF_DETAIL_ADVANCED,
  229. PERF_COUNTER_RAWCOUNT,
  230. sizeof(nntpc1.CurrentOutboundConnects),
  231. 0 // assigned in open procedure
  232. },
  233. { // NntpOutboundLogonFailed
  234. sizeof(PERF_COUNTER_DEFINITION),
  235. NNTP_OUTBOUND_LOGON_FAILED_COUNTER,
  236. 0,
  237. NNTP_OUTBOUND_LOGON_FAILED_COUNTER,
  238. 0,
  239. 0,
  240. PERF_DETAIL_ADVANCED,
  241. PERF_COUNTER_RAWCOUNT,
  242. sizeof(nntpc1.OutboundLogonFailed),
  243. 0 // assigned in open procedure
  244. },
  245. { // NNTPPullFeeds
  246. sizeof(PERF_COUNTER_DEFINITION),
  247. NNTP_TOTAL_PULL_FEEDS_COUNTER,
  248. 0,
  249. NNTP_TOTAL_PULL_FEEDS_COUNTER,
  250. 0,
  251. 0,
  252. PERF_DETAIL_ADVANCED,
  253. PERF_COUNTER_RAWCOUNT,
  254. sizeof(nntpc1.TotalPullFeeds),
  255. 0 // assigned in open procedure
  256. },
  257. { // NNTPPushFeeds
  258. sizeof(PERF_COUNTER_DEFINITION),
  259. NNTP_TOTAL_PUSH_FEEDS_COUNTER,
  260. 0,
  261. NNTP_TOTAL_PUSH_FEEDS_COUNTER,
  262. 0,
  263. 0,
  264. PERF_DETAIL_ADVANCED,
  265. PERF_COUNTER_RAWCOUNT,
  266. sizeof(nntpc1.TotalPushFeeds),
  267. 0 // assigned in open procedure
  268. },
  269. { // NNTPPassiveFeeds
  270. sizeof(PERF_COUNTER_DEFINITION),
  271. NNTP_TOTAL_PASSIVE_FEEDS_COUNTER,
  272. 0,
  273. NNTP_TOTAL_PASSIVE_FEEDS_COUNTER,
  274. 0,
  275. 0,
  276. PERF_DETAIL_ADVANCED,
  277. PERF_COUNTER_RAWCOUNT,
  278. sizeof(nntpc1.TotalPassiveFeeds),
  279. 0 // assigned in open procedure
  280. },
  281. { // NntpArticlesSent
  282. sizeof(PERF_COUNTER_DEFINITION),
  283. NNTP_ARTICLES_SENT_COUNTER,
  284. 0,
  285. NNTP_ARTICLES_SENT_COUNTER,
  286. 0,
  287. 0,
  288. PERF_DETAIL_ADVANCED,
  289. PERF_COUNTER_RAWCOUNT,
  290. sizeof(nntpc1.ArticlesSent),
  291. 0 // assigned in open procedure
  292. },
  293. { // NntpArticlesReceived
  294. sizeof(PERF_COUNTER_DEFINITION),
  295. NNTP_ARTICLES_RECEIVED_COUNTER,
  296. 0,
  297. NNTP_ARTICLES_RECEIVED_COUNTER,
  298. 0,
  299. 0,
  300. PERF_DETAIL_ADVANCED,
  301. PERF_COUNTER_RAWCOUNT,
  302. sizeof(nntpc1.ArticlesReceived),
  303. 0 // assigned in open procedure
  304. },
  305. { // NntpArticlesTotal
  306. sizeof(PERF_COUNTER_DEFINITION),
  307. NNTP_ARTICLES_TOTAL_COUNTER,
  308. 0,
  309. NNTP_ARTICLES_TOTAL_COUNTER,
  310. 0,
  311. 0,
  312. PERF_DETAIL_ADVANCED,
  313. PERF_COUNTER_RAWCOUNT,
  314. sizeof(nntpc1.ArticlesTotal),
  315. 0 // assigned in open procedure
  316. },
  317. { // ArticlesPosted
  318. sizeof(PERF_COUNTER_DEFINITION),
  319. NNTP_ARTICLES_POSTED_COUNTER,
  320. 0,
  321. NNTP_ARTICLES_POSTED_COUNTER,
  322. 0,
  323. 0,
  324. PERF_DETAIL_ADVANCED,
  325. PERF_COUNTER_RAWCOUNT,
  326. sizeof(nntpc1.ArticlesPosted),
  327. 0 // assigned in open procedure
  328. },
  329. { // ArticleMapEntries
  330. sizeof(PERF_COUNTER_DEFINITION),
  331. NNTP_ARTICLE_MAP_ENTRIES_COUNTER,
  332. 0,
  333. NNTP_ARTICLE_MAP_ENTRIES_COUNTER,
  334. 0,
  335. 0,
  336. PERF_DETAIL_ADVANCED,
  337. PERF_COUNTER_RAWCOUNT,
  338. sizeof(nntpc1.ArticleMapEntries),
  339. 0 // assigned in open procedure
  340. },
  341. { // HistoryMapEntries
  342. sizeof(PERF_COUNTER_DEFINITION),
  343. NNTP_HISTORY_MAP_ENTRIES_COUNTER,
  344. 0,
  345. NNTP_HISTORY_MAP_ENTRIES_COUNTER,
  346. 0,
  347. 0,
  348. PERF_DETAIL_ADVANCED,
  349. PERF_COUNTER_RAWCOUNT,
  350. sizeof(nntpc1.HistoryMapEntries),
  351. 0 // assigned in open procedure
  352. },
  353. { // XoverEntries
  354. sizeof(PERF_COUNTER_DEFINITION),
  355. NNTP_XOVER_ENTRIES_COUNTER,
  356. 0,
  357. NNTP_XOVER_ENTRIES_COUNTER,
  358. 0,
  359. 0,
  360. PERF_DETAIL_ADVANCED,
  361. PERF_COUNTER_RAWCOUNT,
  362. sizeof(nntpc1.XoverEntries),
  363. 0 // assigned in open procedure
  364. },
  365. { // ControlMessagesIn
  366. sizeof(PERF_COUNTER_DEFINITION),
  367. NNTP_CONTROL_MSGS_IN_COUNTER,
  368. 0,
  369. NNTP_CONTROL_MSGS_IN_COUNTER,
  370. 0,
  371. 0,
  372. PERF_DETAIL_ADVANCED,
  373. PERF_COUNTER_RAWCOUNT,
  374. sizeof(nntpc1.ControlMessagesIn),
  375. 0 // assigned in open procedure
  376. },
  377. { // ControlMessagesFailed
  378. sizeof(PERF_COUNTER_DEFINITION),
  379. NNTP_CONTROL_MSGS_FAILED_COUNTER,
  380. 0,
  381. NNTP_CONTROL_MSGS_FAILED_COUNTER,
  382. 0,
  383. 0,
  384. PERF_DETAIL_ADVANCED,
  385. PERF_COUNTER_RAWCOUNT,
  386. sizeof(nntpc1.ControlMessagesFailed),
  387. 0 // assigned in open procedure
  388. },
  389. { // ModeratedPostingsSent
  390. sizeof(PERF_COUNTER_DEFINITION),
  391. NNTP_MODERATED_POSTINGS_SENT_COUNTER,
  392. 0,
  393. NNTP_MODERATED_POSTINGS_SENT_COUNTER,
  394. 0,
  395. 0,
  396. PERF_DETAIL_ADVANCED,
  397. PERF_COUNTER_RAWCOUNT,
  398. sizeof(nntpc1.ModeratedPostingsSent),
  399. 0 // assigned in open procedure
  400. },
  401. { // ModeratedPostingsFailed
  402. sizeof(PERF_COUNTER_DEFINITION),
  403. NNTP_MODERATED_POSTINGS_FAILED_COUNTER,
  404. 0,
  405. NNTP_MODERATED_POSTINGS_FAILED_COUNTER,
  406. 0,
  407. 0,
  408. PERF_DETAIL_ADVANCED,
  409. PERF_COUNTER_RAWCOUNT,
  410. sizeof(nntpc1.ModeratedPostingsFailed),
  411. 0 // assigned in open procedure
  412. },
  413. { // SessionsFlowControlled
  414. sizeof(PERF_COUNTER_DEFINITION),
  415. NNTP_SESS_FLOW_CONTROL_COUNTER,
  416. 0,
  417. NNTP_SESS_FLOW_CONTROL_COUNTER,
  418. 0,
  419. 0,
  420. PERF_DETAIL_ADVANCED,
  421. PERF_COUNTER_RAWCOUNT,
  422. sizeof(nntpc1.SessionsFlowControlled),
  423. 0 // assigned in open procedure
  424. },
  425. { // ArticlesExpired
  426. sizeof(PERF_COUNTER_DEFINITION),
  427. NNTP_ARTICLES_EXPIRED_COUNTER,
  428. 0,
  429. NNTP_ARTICLES_EXPIRED_COUNTER,
  430. 0,
  431. 0,
  432. PERF_DETAIL_ADVANCED,
  433. PERF_COUNTER_RAWCOUNT,
  434. sizeof(nntpc1.ArticlesExpired),
  435. 0 // assigned in open procedure
  436. },
  437. { // NntpArticlesSentPerSec
  438. sizeof(PERF_COUNTER_DEFINITION),
  439. NNTP_ARTICLES_SENT_PERSEC_COUNTER,
  440. 0,
  441. NNTP_ARTICLES_SENT_PERSEC_COUNTER,
  442. 0,
  443. 0,
  444. PERF_DETAIL_ADVANCED,
  445. PERF_COUNTER_COUNTER,
  446. sizeof(nntpc1.ArticlesSentPerSec),
  447. 0 // assigned in open procedure
  448. },
  449. { // NntpArticlesReceivedPerSec
  450. sizeof(PERF_COUNTER_DEFINITION),
  451. NNTP_ARTICLES_RECEIVED_PERSEC_COUNTER,
  452. 0,
  453. NNTP_ARTICLES_RECEIVED_PERSEC_COUNTER,
  454. 0,
  455. 0,
  456. PERF_DETAIL_ADVANCED,
  457. PERF_COUNTER_COUNTER,
  458. sizeof(nntpc1.ArticlesReceivedPerSec),
  459. 0 // assigned in open procedure
  460. },
  461. { // ArticlesPostedPerSec
  462. sizeof(PERF_COUNTER_DEFINITION),
  463. NNTP_ARTICLES_POSTED_PERSEC_COUNTER,
  464. 0,
  465. NNTP_ARTICLES_POSTED_PERSEC_COUNTER,
  466. 0,
  467. 0,
  468. PERF_DETAIL_ADVANCED,
  469. PERF_COUNTER_COUNTER,
  470. sizeof(nntpc1.ArticlesPostedPerSec),
  471. 0 // assigned in open procedure
  472. },
  473. { // ArticleMapEntriesPerSec
  474. sizeof(PERF_COUNTER_DEFINITION),
  475. NNTP_ARTICLE_MAP_ENTRIES_PERSEC_COUNTER,
  476. 0,
  477. NNTP_ARTICLE_MAP_ENTRIES_PERSEC_COUNTER,
  478. 0,
  479. 0,
  480. PERF_DETAIL_ADVANCED,
  481. PERF_COUNTER_COUNTER,
  482. sizeof(nntpc1.ArticleMapEntriesPerSec),
  483. 0 // assigned in open procedure
  484. },
  485. { // HistoryMapEntriesPerSec
  486. sizeof(PERF_COUNTER_DEFINITION),
  487. NNTP_HISTORY_MAP_ENTRIES_PERSEC_COUNTER,
  488. 0,
  489. NNTP_HISTORY_MAP_ENTRIES_PERSEC_COUNTER,
  490. 0,
  491. 0,
  492. PERF_DETAIL_ADVANCED,
  493. PERF_COUNTER_COUNTER,
  494. sizeof(nntpc1.HistoryMapEntriesPerSec),
  495. 0 // assigned in open procedure
  496. },
  497. { // XoverEntriesPerSec
  498. sizeof(PERF_COUNTER_DEFINITION),
  499. NNTP_XOVER_ENTRIES_PERSEC_COUNTER,
  500. 0,
  501. NNTP_XOVER_ENTRIES_PERSEC_COUNTER,
  502. 0,
  503. 0,
  504. PERF_DETAIL_ADVANCED,
  505. PERF_COUNTER_COUNTER,
  506. sizeof(nntpc1.XoverEntriesPerSec),
  507. 0 // assigned in open procedure
  508. },
  509. { // ArticlesExpiredPerSec
  510. sizeof(PERF_COUNTER_DEFINITION),
  511. NNTP_ARTICLES_EXPIRED_PERSEC_COUNTER,
  512. 0,
  513. NNTP_ARTICLES_EXPIRED_PERSEC_COUNTER,
  514. 0,
  515. 0,
  516. PERF_DETAIL_ADVANCED,
  517. PERF_COUNTER_COUNTER,
  518. sizeof(nntpc1.ArticlesExpiredPerSec),
  519. 0 // assigned in open procedure
  520. }
  521. };
  522. //
  523. // Initialize the constant portitions of these data structure.
  524. // Certain parts (especially the name/help indices) will be
  525. // updated at initialization time.
  526. //
  527. NNTP_DATA_DEFINITION_OBJECT2 NntpDataDefinitionObject2 =
  528. {
  529. { // NntpObjectType
  530. sizeof(NNTP_DATA_DEFINITION_OBJECT2) + sizeof(NNTP_COUNTER_BLOCK2),
  531. sizeof(NNTP_DATA_DEFINITION_OBJECT2),
  532. sizeof(PERF_OBJECT_TYPE),
  533. NNTP_COUNTER_OBJECT2,
  534. 0,
  535. NNTP_COUNTER_OBJECT2,
  536. 0,
  537. PERF_DETAIL_ADVANCED,
  538. NUMBER_OF_NNTP_COUNTERS_OBJECT2,
  539. 2, // Default = GroupCommands
  540. PERF_NO_INSTANCES,
  541. 0,
  542. { 0, 0 },
  543. { 0, 0 }
  544. },
  545. { // ArticleCommands
  546. sizeof(PERF_COUNTER_DEFINITION),
  547. NNTP_CMDS_ARTICLE_COUNTER,
  548. 0,
  549. NNTP_CMDS_ARTICLE_COUNTER,
  550. 0,
  551. 0,
  552. PERF_DETAIL_ADVANCED,
  553. PERF_COUNTER_RAWCOUNT,
  554. sizeof(nntpc2.ArticleCmds),
  555. 0 // assigned in open procedure
  556. },
  557. { // ArticleCommandsPerSec
  558. sizeof(PERF_COUNTER_DEFINITION),
  559. NNTP_CMDS_PERSEC_ARTICLE_COUNTER,
  560. 0,
  561. NNTP_CMDS_PERSEC_ARTICLE_COUNTER,
  562. 0,
  563. 0,
  564. PERF_DETAIL_ADVANCED,
  565. PERF_COUNTER_COUNTER,
  566. sizeof(nntpc2.ArticleCmdsPerSec),
  567. 0 // assigned in open procedure
  568. },
  569. { // GroupCommands
  570. sizeof(PERF_COUNTER_DEFINITION),
  571. NNTP_CMDS_GROUP_COUNTER,
  572. 0,
  573. NNTP_CMDS_GROUP_COUNTER,
  574. 0,
  575. 0,
  576. PERF_DETAIL_ADVANCED,
  577. PERF_COUNTER_RAWCOUNT,
  578. sizeof(nntpc2.GroupCmds),
  579. 0 // assigned in open procedure
  580. },
  581. { // GroupCommandsPerSec
  582. sizeof(PERF_COUNTER_DEFINITION),
  583. NNTP_CMDS_PERSEC_GROUP_COUNTER,
  584. 0,
  585. NNTP_CMDS_PERSEC_GROUP_COUNTER,
  586. 0,
  587. 0,
  588. PERF_DETAIL_ADVANCED,
  589. PERF_COUNTER_COUNTER,
  590. sizeof(nntpc2.GroupCmdsPerSec),
  591. 0 // assigned in open procedure
  592. },
  593. { // HelpCommands
  594. sizeof(PERF_COUNTER_DEFINITION),
  595. NNTP_CMDS_HELP_COUNTER,
  596. 0,
  597. NNTP_CMDS_HELP_COUNTER,
  598. 0,
  599. 0,
  600. PERF_DETAIL_ADVANCED,
  601. PERF_COUNTER_RAWCOUNT,
  602. sizeof(nntpc2.HelpCmds),
  603. 0 // assigned in open procedure
  604. },
  605. { // HelpCommandsPerSec
  606. sizeof(PERF_COUNTER_DEFINITION),
  607. NNTP_CMDS_PERSEC_HELP_COUNTER,
  608. 0,
  609. NNTP_CMDS_PERSEC_HELP_COUNTER,
  610. 0,
  611. 0,
  612. PERF_DETAIL_ADVANCED,
  613. PERF_COUNTER_COUNTER,
  614. sizeof(nntpc2.HelpCmdsPerSec),
  615. 0 // assigned in open procedure
  616. },
  617. { // IHaveCommands
  618. sizeof(PERF_COUNTER_DEFINITION),
  619. NNTP_CMDS_IHAVE_COUNTER,
  620. 0,
  621. NNTP_CMDS_IHAVE_COUNTER,
  622. 0,
  623. 0,
  624. PERF_DETAIL_ADVANCED,
  625. PERF_COUNTER_RAWCOUNT,
  626. sizeof(nntpc2.IHaveCmds),
  627. 0 // assigned in open procedure
  628. },
  629. { // IHaveCommandsPerSec
  630. sizeof(PERF_COUNTER_DEFINITION),
  631. NNTP_CMDS_PERSEC_IHAVE_COUNTER,
  632. 0,
  633. NNTP_CMDS_PERSEC_IHAVE_COUNTER,
  634. 0,
  635. 0,
  636. PERF_DETAIL_ADVANCED,
  637. PERF_COUNTER_COUNTER,
  638. sizeof(nntpc2.IHaveCmdsPerSec),
  639. 0 // assigned in open procedure
  640. },
  641. { // LastCommands
  642. sizeof(PERF_COUNTER_DEFINITION),
  643. NNTP_CMDS_LAST_COUNTER,
  644. 0,
  645. NNTP_CMDS_LAST_COUNTER,
  646. 0,
  647. 0,
  648. PERF_DETAIL_ADVANCED,
  649. PERF_COUNTER_RAWCOUNT,
  650. sizeof(nntpc2.LastCmds),
  651. 0 // assigned in open procedure
  652. },
  653. { // LastCommandsPerSec
  654. sizeof(PERF_COUNTER_DEFINITION),
  655. NNTP_CMDS_PERSEC_LAST_COUNTER,
  656. 0,
  657. NNTP_CMDS_PERSEC_LAST_COUNTER,
  658. 0,
  659. 0,
  660. PERF_DETAIL_ADVANCED,
  661. PERF_COUNTER_COUNTER,
  662. sizeof(nntpc2.LastCmdsPerSec),
  663. 0 // assigned in open procedure
  664. },
  665. { // ListCommands
  666. sizeof(PERF_COUNTER_DEFINITION),
  667. NNTP_CMDS_LIST_COUNTER,
  668. 0,
  669. NNTP_CMDS_LIST_COUNTER,
  670. 0,
  671. 0,
  672. PERF_DETAIL_ADVANCED,
  673. PERF_COUNTER_RAWCOUNT,
  674. sizeof(nntpc2.ListCmds),
  675. 0 // assigned in open procedure
  676. },
  677. { // ListCommandsPerSec
  678. sizeof(PERF_COUNTER_DEFINITION),
  679. NNTP_CMDS_PERSEC_LIST_COUNTER,
  680. 0,
  681. NNTP_CMDS_PERSEC_LIST_COUNTER,
  682. 0,
  683. 0,
  684. PERF_DETAIL_ADVANCED,
  685. PERF_COUNTER_COUNTER,
  686. sizeof(nntpc2.ListCmdsPerSec),
  687. 0 // assigned in open procedure
  688. },
  689. { // NewgroupsCommands
  690. sizeof(PERF_COUNTER_DEFINITION),
  691. NNTP_CMDS_NEWGROUPS_COUNTER,
  692. 0,
  693. NNTP_CMDS_NEWGROUPS_COUNTER,
  694. 0,
  695. 0,
  696. PERF_DETAIL_ADVANCED,
  697. PERF_COUNTER_RAWCOUNT,
  698. sizeof(nntpc2.NewgroupsCmds),
  699. 0 // assigned in open procedure
  700. },
  701. { // NewgroupsCommandsPerSec
  702. sizeof(PERF_COUNTER_DEFINITION),
  703. NNTP_CMDS_PERSEC_NEWGROUPS_COUNTER,
  704. 0,
  705. NNTP_CMDS_PERSEC_NEWGROUPS_COUNTER,
  706. 0,
  707. 0,
  708. PERF_DETAIL_ADVANCED,
  709. PERF_COUNTER_COUNTER,
  710. sizeof(nntpc2.NewgroupsCmdsPerSec),
  711. 0 // assigned in open procedure
  712. },
  713. { // NewnewsCommands
  714. sizeof(PERF_COUNTER_DEFINITION),
  715. NNTP_CMDS_NEWNEWS_COUNTER,
  716. 0,
  717. NNTP_CMDS_NEWNEWS_COUNTER,
  718. 0,
  719. 0,
  720. PERF_DETAIL_ADVANCED,
  721. PERF_COUNTER_RAWCOUNT,
  722. sizeof(nntpc2.NewnewsCmds),
  723. 0 // assigned in open procedure
  724. },
  725. { // NewnewsCommandsPerSec
  726. sizeof(PERF_COUNTER_DEFINITION),
  727. NNTP_CMDS_PERSEC_NEWNEWS_COUNTER,
  728. 0,
  729. NNTP_CMDS_PERSEC_NEWNEWS_COUNTER,
  730. 0,
  731. 0,
  732. PERF_DETAIL_ADVANCED,
  733. PERF_COUNTER_COUNTER,
  734. sizeof(nntpc2.NewnewsCmdsPerSec),
  735. 0 // assigned in open procedure
  736. },
  737. { // NextCommands
  738. sizeof(PERF_COUNTER_DEFINITION),
  739. NNTP_CMDS_NEXT_COUNTER,
  740. 0,
  741. NNTP_CMDS_NEXT_COUNTER,
  742. 0,
  743. 0,
  744. PERF_DETAIL_ADVANCED,
  745. PERF_COUNTER_RAWCOUNT,
  746. sizeof(nntpc2.NextCmds),
  747. 0 // assigned in open procedure
  748. },
  749. { // NextCommandsPerSec
  750. sizeof(PERF_COUNTER_DEFINITION),
  751. NNTP_CMDS_PERSEC_NEXT_COUNTER,
  752. 0,
  753. NNTP_CMDS_PERSEC_NEXT_COUNTER,
  754. 0,
  755. 0,
  756. PERF_DETAIL_ADVANCED,
  757. PERF_COUNTER_COUNTER,
  758. sizeof(nntpc2.NextCmdsPerSec),
  759. 0 // assigned in open procedure
  760. },
  761. { // PostCommands
  762. sizeof(PERF_COUNTER_DEFINITION),
  763. NNTP_CMDS_POST_COUNTER,
  764. 0,
  765. NNTP_CMDS_POST_COUNTER,
  766. 0,
  767. 0,
  768. PERF_DETAIL_ADVANCED,
  769. PERF_COUNTER_RAWCOUNT,
  770. sizeof(nntpc2.PostCmds),
  771. 0 // assigned in open procedure
  772. },
  773. { // PostCommandsPerSec
  774. sizeof(PERF_COUNTER_DEFINITION),
  775. NNTP_CMDS_PERSEC_POST_COUNTER,
  776. 0,
  777. NNTP_CMDS_PERSEC_POST_COUNTER,
  778. 0,
  779. 0,
  780. PERF_DETAIL_ADVANCED,
  781. PERF_COUNTER_COUNTER,
  782. sizeof(nntpc2.PostCmdsPerSec),
  783. 0 // assigned in open procedure
  784. },
  785. { // QuitCommands
  786. sizeof(PERF_COUNTER_DEFINITION),
  787. NNTP_CMDS_QUIT_COUNTER,
  788. 0,
  789. NNTP_CMDS_QUIT_COUNTER,
  790. 0,
  791. 0,
  792. PERF_DETAIL_ADVANCED,
  793. PERF_COUNTER_RAWCOUNT,
  794. sizeof(nntpc2.QuitCmds),
  795. 0 // assigned in open procedure
  796. },
  797. { // QuitCommandsPerSec
  798. sizeof(PERF_COUNTER_DEFINITION),
  799. NNTP_CMDS_PERSEC_QUIT_COUNTER,
  800. 0,
  801. NNTP_CMDS_PERSEC_QUIT_COUNTER,
  802. 0,
  803. 0,
  804. PERF_DETAIL_ADVANCED,
  805. PERF_COUNTER_COUNTER,
  806. sizeof(nntpc2.QuitCmdsPerSec),
  807. 0 // assigned in open procedure
  808. },
  809. { // StatCommands
  810. sizeof(PERF_COUNTER_DEFINITION),
  811. NNTP_CMDS_STAT_COUNTER,
  812. 0,
  813. NNTP_CMDS_STAT_COUNTER,
  814. 0,
  815. 0,
  816. PERF_DETAIL_ADVANCED,
  817. PERF_COUNTER_RAWCOUNT,
  818. sizeof(nntpc2.StatCmds),
  819. 0 // assigned in open procedure
  820. },
  821. { // StatCommandsPerSec
  822. sizeof(PERF_COUNTER_DEFINITION),
  823. NNTP_CMDS_PERSEC_STAT_COUNTER,
  824. 0,
  825. NNTP_CMDS_PERSEC_STAT_COUNTER,
  826. 0,
  827. 0,
  828. PERF_DETAIL_ADVANCED,
  829. PERF_COUNTER_COUNTER,
  830. sizeof(nntpc2.StatCmdsPerSec),
  831. 0 // assigned in open procedure
  832. },
  833. { // NntpLogonAttempts
  834. sizeof(PERF_COUNTER_DEFINITION),
  835. NNTP_LOGON_ATTEMPTS_COUNTER,
  836. 0,
  837. NNTP_LOGON_ATTEMPTS_COUNTER,
  838. 0,
  839. 0,
  840. PERF_DETAIL_ADVANCED,
  841. PERF_COUNTER_RAWCOUNT,
  842. sizeof(nntpc2.LogonAttempts),
  843. 0 // assigned in open procedure
  844. },
  845. { // NntpLogonFailures
  846. sizeof(PERF_COUNTER_DEFINITION),
  847. NNTP_LOGON_FAILURES_COUNTER,
  848. 0,
  849. NNTP_LOGON_FAILURES_COUNTER,
  850. 0,
  851. 0,
  852. PERF_DETAIL_ADVANCED,
  853. PERF_COUNTER_RAWCOUNT,
  854. sizeof(nntpc2.LogonFailures),
  855. 0 // assigned in open procedure
  856. },
  857. { // NntpLogonAttemptsPerSec
  858. sizeof(PERF_COUNTER_DEFINITION),
  859. NNTP_LOGON_ATTEMPTS_PERSEC_COUNTER,
  860. 0,
  861. NNTP_LOGON_ATTEMPTS_PERSEC_COUNTER,
  862. 0,
  863. 0,
  864. PERF_DETAIL_ADVANCED,
  865. PERF_COUNTER_COUNTER,
  866. sizeof(nntpc2.LogonAttemptsPerSec),
  867. 0 // assigned in open procedure
  868. },
  869. { // NntpLogonFailuresPerSec
  870. sizeof(PERF_COUNTER_DEFINITION),
  871. NNTP_LOGON_FAILURES_PERSEC_COUNTER,
  872. 0,
  873. NNTP_LOGON_FAILURES_PERSEC_COUNTER,
  874. 0,
  875. 0,
  876. PERF_DETAIL_ADVANCED,
  877. PERF_COUNTER_COUNTER,
  878. sizeof(nntpc2.LogonFailuresPerSec),
  879. 0 // assigned in open procedure
  880. },
  881. { // CheckCommands
  882. sizeof(PERF_COUNTER_DEFINITION),
  883. NNTP_CMDS_CHECK_COUNTER,
  884. 0,
  885. NNTP_CMDS_CHECK_COUNTER,
  886. 0,
  887. 0,
  888. PERF_DETAIL_ADVANCED,
  889. PERF_COUNTER_RAWCOUNT,
  890. sizeof(nntpc2.CheckCmds),
  891. 0 // assigned in open procedure
  892. },
  893. { // CheckCommandsPerSec
  894. sizeof(PERF_COUNTER_DEFINITION),
  895. NNTP_CMDS_PERSEC_CHECK_COUNTER,
  896. 0,
  897. NNTP_CMDS_PERSEC_CHECK_COUNTER,
  898. 0,
  899. 0,
  900. PERF_DETAIL_ADVANCED,
  901. PERF_COUNTER_COUNTER,
  902. sizeof(nntpc2.CheckCmdsPerSec),
  903. 0 // assigned in open procedure
  904. },
  905. { // TakethisCommands
  906. sizeof(PERF_COUNTER_DEFINITION),
  907. NNTP_CMDS_TAKETHIS_COUNTER,
  908. 0,
  909. NNTP_CMDS_TAKETHIS_COUNTER,
  910. 0,
  911. 0,
  912. PERF_DETAIL_ADVANCED,
  913. PERF_COUNTER_RAWCOUNT,
  914. sizeof(nntpc2.TakethisCmds),
  915. 0 // assigned in open procedure
  916. },
  917. { // TakethisCommandsPerSec
  918. sizeof(PERF_COUNTER_DEFINITION),
  919. NNTP_CMDS_PERSEC_TAKETHIS_COUNTER,
  920. 0,
  921. NNTP_CMDS_PERSEC_TAKETHIS_COUNTER,
  922. 0,
  923. 0,
  924. PERF_DETAIL_ADVANCED,
  925. PERF_COUNTER_COUNTER,
  926. sizeof(nntpc2.TakethisCmdsPerSec),
  927. 0 // assigned in open procedure
  928. },
  929. { // ModeCommands
  930. sizeof(PERF_COUNTER_DEFINITION),
  931. NNTP_CMDS_MODE_COUNTER,
  932. 0,
  933. NNTP_CMDS_MODE_COUNTER,
  934. 0,
  935. 0,
  936. PERF_DETAIL_ADVANCED,
  937. PERF_COUNTER_RAWCOUNT,
  938. sizeof(nntpc2.ModeCmds),
  939. 0 // assigned in open procedure
  940. },
  941. { // ModeCommandsPerSec
  942. sizeof(PERF_COUNTER_DEFINITION),
  943. NNTP_CMDS_PERSEC_MODE_COUNTER,
  944. 0,
  945. NNTP_CMDS_PERSEC_MODE_COUNTER,
  946. 0,
  947. 0,
  948. PERF_DETAIL_ADVANCED,
  949. PERF_COUNTER_COUNTER,
  950. sizeof(nntpc2.ModeCmdsPerSec),
  951. 0 // assigned in open procedure
  952. },
  953. { // SearchCommands
  954. sizeof(PERF_COUNTER_DEFINITION),
  955. NNTP_CMDS_SEARCH_COUNTER,
  956. 0,
  957. NNTP_CMDS_SEARCH_COUNTER,
  958. 0,
  959. 0,
  960. PERF_DETAIL_ADVANCED,
  961. PERF_COUNTER_RAWCOUNT,
  962. sizeof(nntpc2.SearchCmds),
  963. 0 // assigned in open procedure
  964. },
  965. { // SearchCommandsPerSec
  966. sizeof(PERF_COUNTER_DEFINITION),
  967. NNTP_CMDS_PERSEC_SEARCH_COUNTER,
  968. 0,
  969. NNTP_CMDS_PERSEC_SEARCH_COUNTER,
  970. 0,
  971. 0,
  972. PERF_DETAIL_ADVANCED,
  973. PERF_COUNTER_COUNTER,
  974. sizeof(nntpc2.SearchCmdsPerSec),
  975. 0 // assigned in open procedure
  976. },
  977. { // XHdrCommands
  978. sizeof(PERF_COUNTER_DEFINITION),
  979. NNTP_CMDS_XHDR_COUNTER,
  980. 0,
  981. NNTP_CMDS_XHDR_COUNTER,
  982. 0,
  983. 0,
  984. PERF_DETAIL_ADVANCED,
  985. PERF_COUNTER_RAWCOUNT,
  986. sizeof(nntpc2.XHdrCmds),
  987. 0 // assigned in open procedure
  988. },
  989. { // XHdrCommandsPerSec
  990. sizeof(PERF_COUNTER_DEFINITION),
  991. NNTP_CMDS_PERSEC_XHDR_COUNTER,
  992. 0,
  993. NNTP_CMDS_PERSEC_XHDR_COUNTER,
  994. 0,
  995. 0,
  996. PERF_DETAIL_ADVANCED,
  997. PERF_COUNTER_COUNTER,
  998. sizeof(nntpc2.XHdrCmdsPerSec),
  999. 0 // assigned in open procedure
  1000. },
  1001. { // XOverCommands
  1002. sizeof(PERF_COUNTER_DEFINITION),
  1003. NNTP_CMDS_XOVER_COUNTER,
  1004. 0,
  1005. NNTP_CMDS_XOVER_COUNTER,
  1006. 0,
  1007. 0,
  1008. PERF_DETAIL_ADVANCED,
  1009. PERF_COUNTER_RAWCOUNT,
  1010. sizeof(nntpc2.XOverCmds),
  1011. 0 // assigned in open procedure
  1012. },
  1013. { // XOverCommandsPerSec
  1014. sizeof(PERF_COUNTER_DEFINITION),
  1015. NNTP_CMDS_PERSEC_XOVER_COUNTER,
  1016. 0,
  1017. NNTP_CMDS_PERSEC_XOVER_COUNTER,
  1018. 0,
  1019. 0,
  1020. PERF_DETAIL_ADVANCED,
  1021. PERF_COUNTER_COUNTER,
  1022. sizeof(nntpc2.XOverCmdsPerSec),
  1023. 0 // assigned in open procedure
  1024. },
  1025. { // XPatCommands
  1026. sizeof(PERF_COUNTER_DEFINITION),
  1027. NNTP_CMDS_XPAT_COUNTER,
  1028. 0,
  1029. NNTP_CMDS_XPAT_COUNTER,
  1030. 0,
  1031. 0,
  1032. PERF_DETAIL_ADVANCED,
  1033. PERF_COUNTER_RAWCOUNT,
  1034. sizeof(nntpc2.XPatCmds),
  1035. 0 // assigned in open procedure
  1036. },
  1037. { // XPatCommandsPerSec
  1038. sizeof(PERF_COUNTER_DEFINITION),
  1039. NNTP_CMDS_PERSEC_XPAT_COUNTER,
  1040. 0,
  1041. NNTP_CMDS_PERSEC_XPAT_COUNTER,
  1042. 0,
  1043. 0,
  1044. PERF_DETAIL_ADVANCED,
  1045. PERF_COUNTER_COUNTER,
  1046. sizeof(nntpc2.XPatCmdsPerSec),
  1047. 0 // assigned in open procedure
  1048. },
  1049. { // XReplicCommands
  1050. sizeof(PERF_COUNTER_DEFINITION),
  1051. NNTP_CMDS_XREPLIC_COUNTER,
  1052. 0,
  1053. NNTP_CMDS_XREPLIC_COUNTER,
  1054. 0,
  1055. 0,
  1056. PERF_DETAIL_ADVANCED,
  1057. PERF_COUNTER_RAWCOUNT,
  1058. sizeof(nntpc2.XReplicCmds),
  1059. 0 // assigned in open procedure
  1060. },
  1061. { // XreplicCommandsPerSec
  1062. sizeof(PERF_COUNTER_DEFINITION),
  1063. NNTP_CMDS_PERSEC_XREPLIC_COUNTER,
  1064. 0,
  1065. NNTP_CMDS_PERSEC_XREPLIC_COUNTER,
  1066. 0,
  1067. 0,
  1068. PERF_DETAIL_ADVANCED,
  1069. PERF_COUNTER_COUNTER,
  1070. sizeof(nntpc2.XReplicCmdsPerSec),
  1071. 0 // assigned in open procedure
  1072. }
  1073. };