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.

332 lines
8.4 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. processor.mof
  5. Abstract:
  6. --*/
  7. #pragma classflags("forceupdate")
  8. #pragma namespace("\\\\.\\Root\\WMI")
  9. [abstract]
  10. class MSProcessorClass
  11. {
  12. };
  13. [WMI,
  14. Description("Processor Performance State"):amended,
  15. localeid("MS\\0x409"),
  16. guid("{FDD21E6F-7381-4048-B085-4CE47EDCA2A4}")]
  17. class PerformanceState
  18. {
  19. [WmiDataId(1),
  20. read,
  21. DisplayName("Processor Speed"):amended,
  22. Description("Processor Frequency in Megahertz"):amended
  23. ] uint32 Frequency;
  24. [WmiDataId(2),
  25. read,
  26. DisplayName("Flags"):amended,
  27. Description("Processor State Flags"):amended
  28. ] uint32 Flags;
  29. [WmiDataId(3),
  30. read,
  31. DisplayName("Performance Percentage"):amended,
  32. Description("Percentage of Highest Frequency"):amended
  33. ] uint32 PercentFrequency;
  34. };
  35. [WMI,
  36. Description("Processor Performance States"):amended,
  37. localeid("MS\\0x409"),
  38. guid("{0F23F5FA-0223-48e3-ADBC-9B56B201E0CD}")]
  39. class PerformanceStates
  40. {
  41. [WmiDataId(1),
  42. read,
  43. DisplayName("Reserved"):amended,
  44. Description("Reserved for future use"):amended
  45. ] uint32 TransitionFunction;
  46. [WmiDataId(2),
  47. read,
  48. DisplayName("Transition Latency"):amended,
  49. Description("Worst-case transition latency in microseconds"):amended
  50. ] uint32 TransitionLatency;
  51. [WmiDataId(3),
  52. read,
  53. DisplayName("Current Performance State"):amended,
  54. Description("Current Performance State"):amended
  55. ] uint32 Current;
  56. [WmiDataId(4),
  57. read,
  58. DisplayName("Number of Performance States"):amended,
  59. Description("Total number of Performance States"):amended
  60. ] uint32 Count;
  61. [WmiDataId(5),
  62. read,
  63. DisplayName("Performance States"):amended,
  64. Description("Array of Performance States"):amended,
  65. WmiSizeIs("Count")
  66. ] PerformanceState State[];
  67. };
  68. [WMI,
  69. Dynamic,
  70. Provider("WMIProv"),
  71. Description("Processor Performance Information"):amended,
  72. localeid("MS\\0x409"),
  73. guid("{ee751f9d-cec5-4686-9816-ff6d1ca2261c}")]
  74. class ProcessorStatus:MSProcessorClass
  75. {
  76. [key, read] string InstanceName;
  77. [read] boolean Active;
  78. [WmiDataId(1),
  79. read,
  80. DisplayName("Current Performance State"):amended,
  81. Description("Current Processor Performance State"):amended
  82. ] uint32 CurrentPerfState;
  83. [WmiDataId(2),
  84. read,
  85. DisplayName("Last requested throttle"):amended,
  86. Description("Last requested throttle percentage"):amended
  87. ] uint32 LastRequestedThrottle;
  88. [WmiDataId(3),
  89. read,
  90. DisplayName("Last transition result"):amended,
  91. Description("Last transition result"):amended
  92. ] uint32 LastTransitionResult;
  93. [WmiDataId(4),
  94. read,
  95. DisplayName("Current stop-clock throttle value"):amended,
  96. Description("Current stop-clock throttle value"):amended
  97. ] uint32 ThrottleValue;
  98. [WmiDataId(5),
  99. read,
  100. DisplayName("Lowest Processor Performance State"):amended,
  101. Description("Lowest Processor Performance State"):amended
  102. ] uint32 LowestPerfState;
  103. [WmiDataId(6),
  104. read,
  105. DisplayName("Is Legacy Interface Enabled"):amended,
  106. Description("Is Legacy Interface Enabled"):amended
  107. ] uint32 UsingLegacyInterface;
  108. [WmiDataId(7),
  109. read,
  110. DisplayName("Processor Performance States"):amended,
  111. Description("Processor Performance States"):amended
  112. ] PerformanceStates PerfStates;
  113. };
  114. [WMI,
  115. Dynamic,
  116. Provider("WmiProv"),
  117. Locale("MS\\0x409"),
  118. Description("Methods to alter Processor Performance States"):amended,
  119. guid("{590C82FC-98A3-48e1-BE04-FE11441A11E7}")]
  120. class ProcessorMethods
  121. {
  122. [key, read] string InstanceName;
  123. [read] boolean Active;
  124. [WmiMethodId(1),
  125. Implemented,
  126. DisplayName("Set Current Processor Performance State"):amended,
  127. Description("Change Processor Performance State"):amended
  128. ]void WmiSetProcessorPerfState([in,
  129. Description("New Performance State"):amended
  130. ] uint32 PerformanceState,
  131. [out,
  132. Description("Transition Result"):amended
  133. ] uint32 TransitionResult);
  134. };
  135. [WMI,
  136. Dynamic,
  137. Provider("WmiProv"),
  138. Locale("MS\\0x409"),
  139. Description("Processor Performance State Change Event"),
  140. guid("{66A9B302-F9DB-4864-B0F1-843905E8080F}")]
  141. class ProcessorPerfStateEvent:WmiEvent
  142. {
  143. [key, read] string InstanceName;
  144. [read] boolean Active;
  145. [WmiDataId(1),
  146. read,
  147. DisplayName("Highest Available Processor Performance State"):amended,
  148. Description("Highest Available Processor Performance State"):amended
  149. ] uint32 HighestState;
  150. };
  151. [WMI,
  152. Dynamic,
  153. Provider("WmiProv"),
  154. Locale("MS\\0x409"),
  155. Description("Processor CStates Event"),
  156. guid("{1C9D482E-93CE-4b9e-BDEC-23653CE0CE28}")]
  157. class ProcessorCStateEvent:WmiEvent
  158. {
  159. [key, read] string InstanceName;
  160. [read] boolean Active;
  161. };
  162. [WMI,
  163. Dynamic,
  164. Provider("WmiProv"),
  165. Locale("MS\\0x409"),
  166. Description("Processor Transition Event"),
  167. guid("{A5B32DDD-7F39-4abc-B892-900E43B59EBB}")]
  168. class ProcessorTransitionEvent:WmiEvent
  169. {
  170. [key, read] string InstanceName;
  171. [read] boolean Active;
  172. [WmiDataId(1),
  173. read,
  174. DisplayName("State"):amended,
  175. Description("State"):amended
  176. ] uint32 State;
  177. [WmiDataId(2),
  178. read,
  179. DisplayName("Status"):amended,
  180. Description("Status"):amended
  181. ] uint32 Status;
  182. [WmiDataId(3),
  183. read,
  184. DisplayName("Transition Latency"):amended,
  185. Description("Total Time taken to transition to the new performance state"):amended
  186. ] uint32 Latency;
  187. [WmiDataId(4),
  188. read,
  189. DisplayName("Cpu Speed"):amended,
  190. Description("Cpu Speed"):amended
  191. ] uint32 Speed;
  192. };
  193. [WMI,
  194. Description("Processor Trace Information"):amended,
  195. localeid("MS\\0x409"),
  196. guid("{08213901-B301-4a4c-B1DD-177238110F9F}")]
  197. class ProcessorTrace:EventTrace
  198. {
  199. [WmiDataId(1),
  200. read,
  201. DisplayName("Processor Event String"):amended,
  202. Description("Processor Event String"):amended
  203. ] string EventString;
  204. };
  205. //
  206. // Define schema for performance counters to be displayed by perfmon
  207. //
  208. // All perf counter classes must derived from Win32_PerfRawData and
  209. // have the hiperf qualifier.
  210. //
  211. // Each property within the class must have the following qualifiers:
  212. //
  213. // CounterType - This defines the type of counter. See winperf.h
  214. // for more information on what values to place in this
  215. // qualifier.
  216. //
  217. // PerfDetail - The amount of detail supplied by the counter.
  218. // PERF_DETAIL_NOVICE 100 // The uninformed can understand it
  219. // PERF_DETAIL_ADVANCED 200 // For the advanced user
  220. // PERF_DETAIL_EXPERT 300 // For the expert user
  221. // PERF_DETAIL_WIZARD 400 // For the system designer
  222. //
  223. // DefaultScale - Power if 10 by which to scale chart line if
  224. // vertical axis is 100. 0 ==> 1, 1 ==> 10,
  225. // -1 ==> 1/10. Used for purposes display only.
  226. //
  227. // Also property may have the following optional qualifiers
  228. //
  229. // PerfDefault - Denotes the property that is the default counter
  230. // as displayed by the Sysmon list box. Only one
  231. // property may have this qualifier.
  232. //
  233. // Costly - Indicates that the value for the property may
  234. // be costly to obtain
  235. //
  236. //
  237. // Only int32, uint32, int64 and uint64 properties will be displayed in sysmon
  238. //
  239. // All performance counter classes should be localizable, which means that
  240. // they should include ammended DisplayName and Description class and property
  241. // qualifiers.
  242. //
  243. [WMI,
  244. Dynamic,
  245. Provider("WMIProv"),
  246. Description("Processor Information"):amended,
  247. localeid("MS\\0x409"),
  248. guid("{7FD18652-0CFE-40d2-B0A1-0B066A87759E}"),
  249. PerfDetail(100),
  250. HiPerf
  251. ]
  252. class ProcessorPerformance:Win32_PerfRawData
  253. {
  254. [key, read] string InstanceName;
  255. [read] boolean Active;
  256. [WmiDataId(1),
  257. read,
  258. DisplayName("Processor Frequency"):amended,
  259. Description("Current Processor Frequency in megahertz"):amended,
  260. PerfDefault,
  261. CounterType(0x00000000),
  262. DefaultScale(0),
  263. PerfDetail(100)
  264. ] uint32 frequency;
  265. [WmiDataId(2),
  266. read,
  267. DisplayName("Power Consumption"):amended,
  268. Description("Current Power Consumption in milliwatts"):amended,
  269. CounterType(0x00000000),
  270. DefaultScale(0),
  271. PerfDetail(100)
  272. ] uint32 power;
  273. [WmiDataId(3),
  274. read,
  275. DisplayName("% of Maximum Frequency"):amended,
  276. Description("Percentage of maximum processor frequency"):amended,
  277. CounterType(0x00000000),
  278. DefaultScale(0),
  279. PerfDetail(100)
  280. ] uint32 percentage;
  281. };