/*++ Copyright (c) 2000 Microsoft Corporation Module Name: processor.mof Abstract: --*/ #pragma classflags("forceupdate") #pragma namespace("\\\\.\\Root\\WMI") [abstract] class MSProcessorClass { }; [WMI, Description("Processor Performance State"):amended, localeid("MS\\0x409"), guid("{FDD21E6F-7381-4048-B085-4CE47EDCA2A4}")] class PerformanceState { [WmiDataId(1), read, DisplayName("Processor Speed"):amended, Description("Processor Frequency in Megahertz"):amended ] uint32 Frequency; [WmiDataId(2), read, DisplayName("Flags"):amended, Description("Processor State Flags"):amended ] uint32 Flags; [WmiDataId(3), read, DisplayName("Performance Percentage"):amended, Description("Percentage of Highest Frequency"):amended ] uint32 PercentFrequency; }; [WMI, Description("Processor Performance States"):amended, localeid("MS\\0x409"), guid("{0F23F5FA-0223-48e3-ADBC-9B56B201E0CD}")] class PerformanceStates { [WmiDataId(1), read, DisplayName("Reserved"):amended, Description("Reserved for future use"):amended ] uint32 TransitionFunction; [WmiDataId(2), read, DisplayName("Transition Latency"):amended, Description("Worst-case transition latency in microseconds"):amended ] uint32 TransitionLatency; [WmiDataId(3), read, DisplayName("Current Performance State"):amended, Description("Current Performance State"):amended ] uint32 Current; [WmiDataId(4), read, DisplayName("Number of Performance States"):amended, Description("Total number of Performance States"):amended ] uint32 Count; [WmiDataId(5), read, DisplayName("Performance States"):amended, Description("Array of Performance States"):amended, WmiSizeIs("Count") ] PerformanceState State[]; }; [WMI, Dynamic, Provider("WMIProv"), Description("Processor Performance Information"):amended, localeid("MS\\0x409"), guid("{ee751f9d-cec5-4686-9816-ff6d1ca2261c}")] class ProcessorStatus:MSProcessorClass { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, DisplayName("Current Performance State"):amended, Description("Current Processor Performance State"):amended ] uint32 CurrentPerfState; [WmiDataId(2), read, DisplayName("Last requested throttle"):amended, Description("Last requested throttle percentage"):amended ] uint32 LastRequestedThrottle; [WmiDataId(3), read, DisplayName("Last transition result"):amended, Description("Last transition result"):amended ] uint32 LastTransitionResult; [WmiDataId(4), read, DisplayName("Current stop-clock throttle value"):amended, Description("Current stop-clock throttle value"):amended ] uint32 ThrottleValue; [WmiDataId(5), read, DisplayName("Lowest Processor Performance State"):amended, Description("Lowest Processor Performance State"):amended ] uint32 LowestPerfState; [WmiDataId(6), read, DisplayName("Is Legacy Interface Enabled"):amended, Description("Is Legacy Interface Enabled"):amended ] uint32 UsingLegacyInterface; [WmiDataId(7), read, DisplayName("Processor Performance States"):amended, Description("Processor Performance States"):amended ] PerformanceStates PerfStates; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("Methods to alter Processor Performance States"):amended, guid("{590C82FC-98A3-48e1-BE04-FE11441A11E7}")] class ProcessorMethods { [key, read] string InstanceName; [read] boolean Active; [WmiMethodId(1), Implemented, DisplayName("Set Current Processor Performance State"):amended, Description("Change Processor Performance State"):amended ]void WmiSetProcessorPerfState([in, Description("New Performance State"):amended ] uint32 PerformanceState, [out, Description("Transition Result"):amended ] uint32 TransitionResult); }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("Processor Performance State Change Event"), guid("{66A9B302-F9DB-4864-B0F1-843905E8080F}")] class ProcessorPerfStateEvent:WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, DisplayName("Highest Available Processor Performance State"):amended, Description("Highest Available Processor Performance State"):amended ] uint32 HighestState; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("Processor CStates Event"), guid("{1C9D482E-93CE-4b9e-BDEC-23653CE0CE28}")] class ProcessorCStateEvent:WmiEvent { [key, read] string InstanceName; [read] boolean Active; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("Processor Transition Event"), guid("{A5B32DDD-7F39-4abc-B892-900E43B59EBB}")] class ProcessorTransitionEvent:WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, DisplayName("State"):amended, Description("State"):amended ] uint32 State; [WmiDataId(2), read, DisplayName("Status"):amended, Description("Status"):amended ] uint32 Status; [WmiDataId(3), read, DisplayName("Transition Latency"):amended, Description("Total Time taken to transition to the new performance state"):amended ] uint32 Latency; [WmiDataId(4), read, DisplayName("Cpu Speed"):amended, Description("Cpu Speed"):amended ] uint32 Speed; }; [WMI, Description("Processor Trace Information"):amended, localeid("MS\\0x409"), guid("{08213901-B301-4a4c-B1DD-177238110F9F}")] class ProcessorTrace:EventTrace { [WmiDataId(1), read, DisplayName("Processor Event String"):amended, Description("Processor Event String"):amended ] string EventString; }; // // Define schema for performance counters to be displayed by perfmon // // All perf counter classes must derived from Win32_PerfRawData and // have the hiperf qualifier. // // Each property within the class must have the following qualifiers: // // CounterType - This defines the type of counter. See winperf.h // for more information on what values to place in this // qualifier. // // PerfDetail - The amount of detail supplied by the counter. // PERF_DETAIL_NOVICE 100 // The uninformed can understand it // PERF_DETAIL_ADVANCED 200 // For the advanced user // PERF_DETAIL_EXPERT 300 // For the expert user // PERF_DETAIL_WIZARD 400 // For the system designer // // DefaultScale - Power if 10 by which to scale chart line if // vertical axis is 100. 0 ==> 1, 1 ==> 10, // -1 ==> 1/10. Used for purposes display only. // // Also property may have the following optional qualifiers // // PerfDefault - Denotes the property that is the default counter // as displayed by the Sysmon list box. Only one // property may have this qualifier. // // Costly - Indicates that the value for the property may // be costly to obtain // // // Only int32, uint32, int64 and uint64 properties will be displayed in sysmon // // All performance counter classes should be localizable, which means that // they should include ammended DisplayName and Description class and property // qualifiers. // [WMI, Dynamic, Provider("WMIProv"), Description("Processor Information"):amended, localeid("MS\\0x409"), guid("{7FD18652-0CFE-40d2-B0A1-0B066A87759E}"), PerfDetail(100), HiPerf ] class ProcessorPerformance:Win32_PerfRawData { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, DisplayName("Processor Frequency"):amended, Description("Current Processor Frequency in megahertz"):amended, PerfDefault, CounterType(0x00000000), DefaultScale(0), PerfDetail(100) ] uint32 frequency; [WmiDataId(2), read, DisplayName("Power Consumption"):amended, Description("Current Power Consumption in milliwatts"):amended, CounterType(0x00000000), DefaultScale(0), PerfDetail(100) ] uint32 power; [WmiDataId(3), read, DisplayName("% of Maximum Frequency"):amended, Description("Percentage of maximum processor frequency"):amended, CounterType(0x00000000), DefaultScale(0), PerfDetail(100) ] uint32 percentage; };