Leaked source code of windows server 2003
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.

189 lines
6.7 KiB

  1. /*++ BUILD Version: 0001 // Increment this if a change has global effects
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. dataatk.h
  5. Abstract:
  6. Header file for the VGA Extensible Object data definitions
  7. This file contains definitions to construct the dynamic data
  8. which is returned by the Configuration Registry. Data from
  9. various system API calls is placed into the structures shown
  10. here.
  11. Author:
  12. Sue Adams
  13. Revision History:
  14. 04-Oct-93 Sue Adams (suea) - Created based on datavga.h
  15. --*/
  16. #ifndef _DATAATK_H_
  17. #define _DATAATK_H_
  18. /****************************************************************************\
  19. 18 Jan 92
  20. russbl
  21. Adding a Counter to the Extensible Objects Code
  22. 1. Modify the object definition in extdata.h:
  23. a. Add a define for the offset of the counter in the
  24. data block for the given object type.
  25. b. Add a PERF_COUNTER_DEFINITION to the <object>_DATA_DEFINITION.
  26. 2. Add the Titles to the Registry in perfctrs.ini and perfhelp.ini:
  27. a. Add Text for the Counter Name and the Text for the Help.
  28. b. Add them to the bottom so we don't have to change all the
  29. numbers.
  30. c. Change the Last Counter and Last Help entries under
  31. PerfLib in software.ini.
  32. d. To do this at setup time, see section in pmintrnl.txt for
  33. protocol.
  34. 3. Now add the counter to the object definition in extdata.c.
  35. This is the initializing, constant data which will actually go
  36. into the structure you added to the <object>_DATA_DEFINITION in
  37. step 1.b. The type of the structure you are initializing is a
  38. PERF_COUNTER_DEFINITION. These are defined in winperf.h.
  39. 4. Add code in extobjct.c to collect the data.
  40. Note: adding an object is a little more work, but in all the same
  41. places. See the existing code for examples. In addition, you must
  42. increase the *NumObjectTypes parameter to Get<object>PerfomanceData
  43. on return from that routine.
  44. \****************************************************************************/
  45. //
  46. // The routines that load these structures assume that all fields
  47. // are packed and aligned on DWORD boundries. Alpha support may
  48. // change this assumption so the pack pragma is used here to insure
  49. // the DWORD packing assumption remains valid.
  50. //
  51. #pragma pack (4)
  52. //
  53. // Extensible Object definitions
  54. //
  55. // Update the following sort of define when adding an object type.
  56. #define ATK_NUM_PERF_OBJECT_TYPES 2
  57. //----------------------------------------------------------------------------
  58. //
  59. // Atk Resource object type counter definitions.
  60. //
  61. // These are used in the counter definitions to describe the relative
  62. // position of each counter in the returned data.
  63. //
  64. #define NUM_PKTS_IN_OFFSET sizeof(PERF_COUNTER_BLOCK)
  65. #define NUM_PKTS_OUT_OFFSET NUM_PKTS_IN_OFFSET + sizeof(DWORD)
  66. #define NUM_DATAIN_OFFSET NUM_PKTS_OUT_OFFSET + sizeof(DWORD)
  67. #define NUM_DATAOUT_OFFSET NUM_DATAIN_OFFSET + sizeof(LARGE_INTEGER)
  68. #define DDP_PKT_PROCTIME_OFFSET NUM_DATAOUT_OFFSET + sizeof(LARGE_INTEGER)
  69. #define NUM_DDP_PKTS_IN_OFFSET DDP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  70. #define AARP_PKT_PROCTIME_OFFSET NUM_DDP_PKTS_IN_OFFSET + sizeof(DWORD)
  71. #define NUM_AARP_PKTS_IN_OFFSET AARP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  72. #define ATP_PKT_PROCTIME_OFFSET NUM_AARP_PKTS_IN_OFFSET + sizeof(DWORD)
  73. #define NUM_ATP_PKTS_IN_OFFSET ATP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  74. #define NUM_ATP_RESP_TIMEOUT_OFFSET NUM_ATP_PKTS_IN_OFFSET + sizeof(DWORD)
  75. #define NUM_ATP_LOCAL_RETRY_OFFSET NUM_ATP_RESP_TIMEOUT_OFFSET + sizeof(DWORD)
  76. #define NUM_ATP_REMOTE_RETRY_OFFSET NUM_ATP_LOCAL_RETRY_OFFSET + sizeof(DWORD)
  77. #define NUM_ATP_XO_RESPONSE_OFFSET NUM_ATP_REMOTE_RETRY_OFFSET + sizeof(DWORD)
  78. #define NUM_ATP_ALO_RESPONSE_OFFSET NUM_ATP_XO_RESPONSE_OFFSET + sizeof(DWORD)
  79. #define NUM_ATP_RECD_REL_OFFSET NUM_ATP_ALO_RESPONSE_OFFSET + sizeof(DWORD)
  80. #define NBP_PKT_PROCTIME_OFFSET NUM_ATP_RECD_REL_OFFSET + sizeof(DWORD)
  81. #define NUM_NBP_PKTS_IN_OFFSET NBP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  82. #define ZIP_PKT_PROCTIME_OFFSET NUM_NBP_PKTS_IN_OFFSET + sizeof(DWORD)
  83. #define NUM_ZIP_PKTS_IN_OFFSET ZIP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  84. #define RTMP_PKT_PROCTIME_OFFSET NUM_ZIP_PKTS_IN_OFFSET + sizeof(DWORD)
  85. #define NUM_RTMP_PKTS_IN_OFFSET RTMP_PKT_PROCTIME_OFFSET + sizeof(LARGE_INTEGER)
  86. #define CUR_MEM_USAGE_OFFSET NUM_RTMP_PKTS_IN_OFFSET + sizeof(DWORD)
  87. #define NUM_PKT_ROUTED_IN_OFFSET CUR_MEM_USAGE_OFFSET + sizeof(DWORD)
  88. #define NUM_PKT_ROUTED_OUT_OFFSET NUM_PKT_ROUTED_IN_OFFSET + sizeof(DWORD)
  89. #define NUM_PKT_DROPPED_OFFSET NUM_PKT_ROUTED_OUT_OFFSET + sizeof(DWORD)
  90. #define SIZE_ATK_PERFORMANCE_DATA NUM_PKT_DROPPED_OFFSET + sizeof(DWORD) + sizeof(DWORD)
  91. // Last DWORD is for 8-byte alignment
  92. //
  93. // This is the counter structure presently returned by Nbf for
  94. // each Resource. Each Resource is an Instance, named by its number.
  95. //
  96. typedef struct _ATK_DATA_DEFINITION {
  97. PERF_OBJECT_TYPE AtkObjectType;
  98. PERF_COUNTER_DEFINITION NumPacketsIn; // per second
  99. PERF_COUNTER_DEFINITION NumPacketsOut; // per second
  100. PERF_COUNTER_DEFINITION DataBytesIn; // per second
  101. PERF_COUNTER_DEFINITION DataBytesOut; // per second
  102. PERF_COUNTER_DEFINITION AverageDDPTime; // millisec/packet
  103. PERF_COUNTER_DEFINITION NumDDPPacketsIn; // per second
  104. PERF_COUNTER_DEFINITION AverageAARPTime; // millisec/packet
  105. PERF_COUNTER_DEFINITION NumAARPPacketsIn; // per second
  106. PERF_COUNTER_DEFINITION AverageATPTime; // millisec/packet
  107. PERF_COUNTER_DEFINITION NumATPPacketsIn; // per second
  108. PERF_COUNTER_DEFINITION AverageNBPTime; // millisec/packet
  109. PERF_COUNTER_DEFINITION NumNBPPacketsIn; // per second
  110. PERF_COUNTER_DEFINITION AverageZIPTime; // millisec/packet
  111. PERF_COUNTER_DEFINITION NumZIPPacketsIn; // per second
  112. PERF_COUNTER_DEFINITION AverageRTMPTime; // millisec/packet
  113. PERF_COUNTER_DEFINITION NumRTMPPacketsIn; // per second
  114. PERF_COUNTER_DEFINITION NumATPLocalRetries; // number
  115. PERF_COUNTER_DEFINITION NumATPRemoteRetries;// number
  116. PERF_COUNTER_DEFINITION NumATPRespTimeout; // number
  117. PERF_COUNTER_DEFINITION ATPXoResponse; // per second
  118. PERF_COUNTER_DEFINITION ATPAloResponse; // per second
  119. PERF_COUNTER_DEFINITION ATPRecdRelease; // per second
  120. PERF_COUNTER_DEFINITION CurNonPagedPoolUsage;
  121. PERF_COUNTER_DEFINITION NumPktRoutedIn; // Packets in to be routed
  122. PERF_COUNTER_DEFINITION NumPktRoutedOut; // packets routed out
  123. PERF_COUNTER_DEFINITION NumPktDropped; // Packets dropped
  124. } ATK_DATA_DEFINITION;
  125. #pragma pack ()
  126. #endif //_DATAATK_H_