// Copyright (c) 1997-2008 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2\\power")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\cimv2\\power\\ms_804")

[Description("ManagedElement 是一个抽象类，为 CIM 架构中的非关联类提供一个公共超类(即继承树的顶部)。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_ManagedElement
{
  [Description("InstanceID 是一个可选属性，可用于在实例化命名空间的作用域内不透明地并唯一地标识此类的实例。此类的各种子类可能会替代此属性，使其成为必要属性或键。这些子类可能还会修改首选算法，以确保唯一性(如下方所定义)。\n为确保在命名空间内的唯一性，InstanceID 的值应使用以下“首选”算法来构造: \n<OrgID>:<LocalID> \n其中，<OrgID> 和 <LocalID> 以冒号(:)分隔，并且 <OrgID> 中必须包含版权、商标或是由创建或定义此 InstanceID 的商业实体所拥有的其他唯一性名称，或者是一个由公认的世界权威机构向该商业实体分配的注册 ID。(此要求与 Schema 类名称的 <Schema 名称>_<类名称> 结构类似。)此外，要确保唯一性，<OrgID> 不能包含冒号(:)。在使用此算法时，InstanceID 中的第一个冒号必须位于 <OrgID> 和 <LocalID> 之间。\n<LocalID> 由商业实体选择，不得再用于标识其他基础(即现实生活中的)元素。如果不为空并且不使用上述“首选”算法，则负责定义的实体必须保证，在此提供程序或任何其他提供程序为此实例命名空间创建的任何 InstanceID 中，均不会重复使用最终构造的 InstanceID。\n如果对于 DMTF 定义的实例未设置为空，则必须使用“首选”算法，并且将 <OrgID> 设置为 CIM。") : Amended ToSubclass] string InstanceID;
  [Description("Caption 属性是关于对象的简短文字描述(只有一行的字符串)。") : Amended ToSubclass] string Caption;
  [Description("Description 属性提供关于对象的文字描述。") : Amended ToSubclass] string Description;
  [Description("对象的用户友好名称。此属性允许每个实例在其键属性、标识数据和描述信息之外，再创建一个用户友好名称。\n请注意，ManagedSystemElement 的 Name 属性也被定义为用户友好名称。但是，该属性通常被派生为键子类。正常情况下，同一属性无法在不引起任何不一致的情况下既标识身份又充当用户友好名称。如果存在 Name 属性并且它不是键(例如 LogicalDevice 的实例)，则 Name 属性和 ElementName 属性中可显示相同的信息。请注意，如果存在 CIM_EnabledLogicalElementCapabilities 的关联实例，则此属性可能会受在该类的 ElementNameMask 和 MaxElementNameLen 属性中定义的限制所限。") : Amended ToSubclass] string ElementName;
};

[Description("CIM_ElementConformsToProfile 关联对引用的 ManagedElement 所符合的 RegisteredProfiles 进行定义。请注意：此关联可应用于任何托管元素。典型用法是将其应用于较高级别的实例，如系统、命名空间或服务。当应用于较高级别的实例时，所有组成部分的行为必须适当，才能支持 ManagedElement 与命名 RegisteredProfile 的一致性。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_ElementConformsToProfile
{
  [Key,Description("ManagedElement 所符合的 RegisteredProfile。") : Amended ToSubclass] CIM_RegisteredProfile Ref ConformantStandard;
  [Key,Description("符合 RegisteredProfile 的 ManagedElement。") : Amended ToSubclass] CIM_ManagedElement Ref ManagedElement;
};

[Description("RegisteredProfile 描述一组包含必要属性和/或方法的 CIM Schema 类，这些类对于采用交互方式管理现实实体或支持使用场景是必要的。RegisteredProfiles 可以由 DMTF 定义，也可以由其他标准机构定义。请注意，不应将此类与 CIM_Profile 混淆，CIM_Profile 用于收集用作元素“配置文件”的 SettingData 实例。\nRegisteredProfile 是专为实现一组特定用途的特定系统、子系统、服务或其他实体而设的基于 CIM 的管理指定“标准”。它是一个完整、独立的定义，这与子类 RegisteredSubProfile 不同，后者需要一个作用域配置文件提供上下文。\n用户必须在定义该配置文件的文档中指定 RegisteredProfile 或 SubProfile 的用法。典型的配置文件用于管理操作系统、存储阵列或数据库的各个方面。该配置文件的名称由其编写机构定义和限定。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_RegisteredProfile : CIM_ManagedElement
{
  [Key,Description("在实例化命名空间的作用域内，InstanceID 不透明地并唯一地标识此类的实例。为确保在命名空间内的唯一性，InstanceID 的值应使用以下“首选”算法来构造: \n<OrgID>:<LocalID> \n其中 <OrgID> 和 <LocalID> 以冒号“:”分隔，并且 <OrgID> 中必须包含版权、商标或是由创建/定义此 InstanceID 的商业实体所拥有的其他唯一性名称，或者是一个由公认的世界权威机构分配向该商业实体分配的注册 ID。(这与 Schema 类名称的 <Schema 名称>_<类名称> 结构类似。)此外，为确保唯一性，<OrgID> 不得含有冒号(“:”)。在使用此算法时，InstanceID 中的第一个冒号必须位于 <OrgID> 和 <LocalID> 之间。\n<LocalID> 由组织实体选择，不得再用于标识其他基础(即现实生活中的)元素。如果未使用上述“首选”算法，则负责定义的实体必须保证，在此提供商或任何其他提供商为此实例命名空间创建的任何 InstanceID 中，均不会重复使用最终构造的 InstanceID。\n对于 DMTF 定义的实例，使用“首选”算法时必须将 <OrgID> 设置为“CIM”。") : Amended ToSubclass] string InstanceID;
  [Description("定义此配置文件的组织。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", ".."} : Amended ToSubclass,Values{"其他", "DMTF", "CompTIA", "Consortium for Service Innovation", "FAST", "GGF", "INTAP", "itSMF", "NAC", "Northwest Energy Efficiency Alliance", "SNIA", "TM Forum", "The Open Group", "ANSI", "IEEE", "IETF", "INCITS", "ISO", "W3C", "OGF", "The Green Grid", "DMTF Reserved"} : Amended ToSubclass] uint16 RegisteredOrganization;
  [Description("将 RegisteredOrganization 指定为 1 \"其他\" 时，对该组织进行描述的一个自由格式字符串。") : Amended ToSubclass] string OtherRegisteredOrganization;
  [Description("此注册配置文件的名称。由于同一 RegisteredName 可能存在多个版本，RegisteredName、RegisteredOrganization 和 RegisteredVersion 组合必须唯一，用以识别组织作用域内的注册配置文件。") : Amended ToSubclass] string RegisteredName;
  [Description("此配置文件的版本。表示版本的字符串必须采用以下格式: \nM + \".\" + N + \".\" + U \n其中: \nM - 描述配置文件创建时或最近一次修改时的主要版本(格式为数字)。\nN - 描述配置文件创建时或最近一次修改时的次要版本(格式为数字)。\nU - 描述配置文件创建时或最近一次修改时的更新(例如勘误表、修补程序等，格式为数字)。") : Amended ToSubclass] string RegisteredVersion;
  [Description("此属性表示配置文件信息的播发。它由 WBEM 基础结构的播发服务使用，以确定应播发的内容和采用的机制。该属性是一个数组，这样即可使用多个机制播发该配置文件。注意: 如果此属性为空/未初始化，则相当于指定值 2 \"不播发\"。") : Amended ToSubclass,ValueMap{"1", "2", "3"} : Amended ToSubclass,Values{"其他", "不播发", "SLP"} : Amended ToSubclass] uint16 AdvertiseTypes[];
  [Description("一个自由格式字符串，提供与 AdvertiseType 相关的额外信息。当 AdvertiseType 为 1 \"其他\" 时，必须提供描述。此数组中的条目对应于 AdvertiseTypes 数组中在同一索引的条目。如果类型设置为 \"不播发\" 或 \"SLP\"，将不需要额外描述。不过，随着 SLP 模板的展开或者随着其他播发机制被定义，可能需要支持额外描述。定义此数组就是为了在此情况下提供支持。") : Amended ToSubclass] string AdvertiseTypeDescriptions[];
};

[Description("CIM_ManagedSystemElement 是 System Element 层次结构的基类。任何可辨别的系统组件都能包含在此类中。系统组件的示例包括: \n- 应用程序服务器、数据库和应用程序等软件组件 \n- 文件、进程和线程等操作系统组件 \n- 磁盘驱动器、控制器、处理器和打印机等设备组件\n- 芯片和卡等物理组件。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_ManagedSystemElement : CIM_ManagedElement
{
  [Description("一个日期时间值，指明对象的安装时间。缺少该值并不表示未安装对象。") : Amended ToSubclass] datetime InstallDate;
  [Description("Name 属性定义用于识别对象的名称标签。在派生子类时，Name 属性可以替代为 Key 属性。") : Amended ToSubclass] string Name;
  [Description("指明元素的当前状态。定义了各种运行状态。其中许多枚举值都是一目了然，无需更多解释。但是，也有少数值并非如此，以下将对这些值予以详细说明。\n“高负荷”表明元素正在工作，但是需要注意。过载、过热等都属于“高负荷”状态。\n“预见故障”表明元素表面上正在工作，但是预计不久会出现故障。\n“正在维修”说明元素正在接受配置、维护、清洁或其他方式的管理。\n“无连接”表明监视系统知道此元素，但是一直无法与其建立通信。\n“通信中断”表明 ManagedSystem 元素已知存在，并且过去曾成功建立联系，但是现在不可访问。\n“已停止”和“已中止”类似，只是前者暗示正常有序地停止，而后者暗示紧急停止，元素的状态和配置可能需要更新。\n“休止”表明元素处于非活动状态或静止。\n“支持实体出错”表明此元素可能“良好”，但是此元素所依赖的另一个元素可能出现错误。由于低层网络问题而无法工作的网络服务或端点就属于这种情况。\n“已完成”表明该元素已完成操作。此值应与“良好”、“错误”或“已降级”组合使用，使客户端可以确定整个操作是已经良好地完成(已通过)、已经完成但出现错误(失败)，还是已经完成但是降级(操作已完成，但是未“良好”地完成或未报告错误)。\n“电源模式”表明元素在 Associated PowerManagementService 关联中包含其他电源模式信息。\nOperationalStatus 替换 ManagedSystemElement 的 Status 属性，以便提供一致的枚举方法，满足实现数组属性的需要，从而可以从现在的环境迁移到未来的环境。以前未进行此更改是因为需要 DEPRECATED 限定符。由于在管理应用程序中广泛使用现有的 Status 属性，强烈建议提供程序/工具同时提供 Status 和 OperationalStatus 属性。此外，OperationalStatus 的第一个值应包含元素的主要状态。如果有 Status 属性，则 Status (由于是单值)也应提供元素的主要状态。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "..", "0x8000.."} : Amended ToSubclass,Values{"未知", "其他", "良好", "已降级", "高负荷", "预见故障", "错误", "不可恢复的错误", "正在启动", "正在停止", "已停止", "正在维修", "无连接", "通信中断", "已中止", "休止", "支持实体出错", "已完成", "电源模式", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 OperationalStatus[];
  [Description("描述各种 OperationalStatus 数组值的字符串。例如，如果为 OperationalStatus 分配的值为“正在停止”，则此属性可以包含与对象停止原因相关的描述。请注意，此数组中的条目与 OperationalStatus 中处于相同数组索引的条目相关。") : Amended ToSubclass] string StatusDescriptions[];
  [Description("指明对象当前状态的一个字符串。定义了各种运行和非运行状态。此属性已被弃用替代 OperationalStatus，后者在枚举中包括相同的语义。此更改出于以下 3 个原因: \n1) 以数组的形式更准确地定义状态。当某个状态实际上是多值属性时(例如，某个元素的状态可能是“良好”和“已停止”)，这种定义便能克服通过单个值描述状态的局限性。\n2) MaxLen 为 10 的限制太严格，无法清楚地描述枚举值。\n3) 对 uint16 数据类型的更改在定义 CIM V2.0 时已讨论。但是，现有的 V1.0 实现使用的是字符串属性，且不希望修改其代码。因此，Status 归属到 Schema 中。使用 Deprecated 限定符可以保留现有的属性，同时允许使用 OperationalStatus 改进定义。") : Amended ToSubclass,ValueMap{"良好", "错误", "已降级", "未知", "预见故障", "正在启动", "正在停止", "服务", "高负荷", "无法恢复", "无连接", "通信中断", "已停止"} : Amended ToSubclass] string Status;
  [Description("指明元素当前的运行状况。此属性表明此元素(但不一定是其子组件)的运行状况。可能的值为 0 到 30，其中 5 意味着元素完全正常，30 意味着元素完全无法工作。定义的状态集如下: \n“不可恢复的错误”(30) - 元素以失败而告终，并且无法恢复。此元素提供的所有功能均已丧失。\n“严重故障”(25) - 元素无法工作，并且可能无法恢复。\n“主要故障”(20) - 元素失败。此组件的部分或全部功能可能已降级或无法使用。\n“次要故障”(15) - 所有功能均可以使用，但是有些功能可能已降级。\n“已降级/警告”(10) - 元素正在工作，并且提供所有功能。但是元素未实现最佳效果。例如，元素可能未实现最佳性能或报告了可恢复的错误。 \n“良好”(5) - 元素功能完全正常，使用正常的操作参数工作，没有出现错误。\n“未知”(0) - 此时无法报告 HealthState。 \nDMTF 保留了未用的部分状态集以备将来增加 HealthState 所用。") : Amended ToSubclass,ValueMap{"0", "5", "10", "15", "20", "25", "30", ".."} : Amended ToSubclass,Values{"未知", "良好", "已降级/警告", "次要故障", "主要故障", "严重故障", "不可恢复的错误", "DMTF 保留"} : Amended ToSubclass] uint16 HealthState;
  [Description("CommunicationStatus 指明检测与基础 ManagedElement 的通信能力。CommunicationStatus 包含以下某个值: 未知、无、通信良好、通信中断或无连接。\n如果返回空值，则表明该检测(提供程序)未实现此属性。\n“未知”表明该实现一般情况下能返回此属性，但是当前这一次无法返回。\n“不可用”表明该检测(提供程序)能返回此属性的值，但是一直无法为此特定硬件/软件返回此属性的值，或者是由于此属性并不提供任何有意义的信息(例如某个属性只是为了向另一个属性添加附加信息)，因而有意未使用此属性。\n“通信良好”表明已与元素建立了通信，但是未传输任何服务质量信息。\n“无连接”表明监视系统知道此元素，但是一直无法与其建立通信。\n“通信中断”表明托管元素已知存在，并且过去曾成功建立联系，但是现在不可访问。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "..", "0x8000.."} : Amended ToSubclass,Values{"未知", "不可用", "通信良好", "通信中断", "无连接", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 CommunicationStatus;
  [Description("DetailedStatus 作为 PrimaryStatus 的补充，可提供额外的状态详细信息。它包含以下某个值: 不可用、无其他信息、高负荷、预见故障、错误、不可恢复的错误或支持实体出错。DetailedStatus 是对元素 PrimaryStatus 的扩充。\n如果返回空值，则表明该检测(提供程序)未实现此属性。\n“不可用”表明该检测(提供程序)能返回此属性的值，但是一直无法为此特定硬件/软件返回此属性的值，或者是由于此属性并不提供任何有意义的信息(例如某个属性只是为了向另一个属性添加附加信息)，因而有意未使用此属性。\n“无其他信息”表明元素如 PrimaryStatus 的“良好”状态所示在正常工作。\n“高负荷”表明元素正在工作，但是需要注意。过载、过热等都属于“高负荷”状态。\n“预见故障”表明元素表面上正在工作，但是预计不久会出现故障。\n“不可恢复的错误”表明此元素出现需要人工干预的错误。\n“支持实体出错”表明此元素可能“良好”，但是此元素所依赖的另一个元素可能出现错误。由于低层网络问题而无法工作的网络服务或端点就属于这种情况。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "..", "0x8000.."} : Amended ToSubclass,Values{"不可用", "无其他信息", "高负荷", "预见故障", "不可恢复的错误", "支持实体出错", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 DetailedStatus;
  [Description("OperatingStatus 针对元素运行状况提供其当前状态值，可用于提供有关 EnabledState 值的更多详细信息。当元素从一种状态向另一种状态转换时，例如某个元素在 EnabledState 与 RequestedState 之间转换以及其他转换情形，OperatingStatus 还可以提供转换状态信息。\nOperatingStatus 包含以下某个值:未知、不可用、正在使用、正在启动、正在停止、已停止、已中止、已休止、已完成、正在迁移、正在迁出、正在迁入、正在拍摄快照、正在关闭、正在测试 \n如果返回空值，则表明该检测(提供程序)未实现此属性。\n“未知”表明该实现一般情况下能返回此属性，但是当前这一次无法返回。\n“无”表明该检测(提供程序)能返回此属性的值，但是一直无法为此特定硬件/软件返回此属性的值，或者是由于此属性并不提供任何有意义的信息(例如某个属性只是为了向另一个属性添加附加信息)，因而有意未使用此属性。\n“正在维修”说明元素正在接受配置、维护、清洁或其他方式的管理。\n“正在启动”表明元素正在初始化。\n“正在停止”表明元素正在进入有序的停止状态。\n“已停止”和“已中止”类似，只是前者暗示正常有序地停止，而后者暗示紧急停止，元素的状态和配置可能需要更新。\n“休止”表明元素处于非活动状态或静态。\n“已完成”表明该元素已完成操作。此值应与 PrimaryStatus 中的“良好”、“错误”或“已降级”组合使用，使客户端可以确定整个操作是已经良好地完成(通过)、已经完成但出现错误(失败)，还是已经完成但是降级(操作已完成，但是未“良好”地完成或未报告错误)。\n“正在迁移”表明元素正在宿主元素之间移动。 \n“正在迁入”表明元素正在向某个新的宿主元素移入。\n“正在迁出”表明元素正在从宿主元素移出。\n“正在关闭”表明元素正在进入紧急停止状态。\n“正在测试”表明元素正在执行测试功能。\n“正在转换”表明元素处于两种状态之间的转换期，即该元素目前在前一状态和下一状态中均不完全可用。在没有其他适用的值可以表明到某个特定状态的转换时，应使用此值。\n“正在工作”表明元素正在工作，可以使用。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "..", "0x8000.."} : Amended ToSubclass,Values{"未知", "不可用", "正在维修", "正在启动", "正在停止", "已停止", "已中止", "休止", "已完成", "正在迁移", "正在迁出", "正在迁入", "正在拍摄快照", "正在关闭", "正在测试", "正在转换", "正在维修", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 OperatingStatus;
  [Description("PrimaryStatus 提供了一个高级状态值，用来对应状态的红-黄-绿三种类型展示。该值应与 DetailedStatus 一同使用，这样才能提供 ManagedElement 及其子组件的高级和详细的运行状态。\nPrimaryStatus 的值包括: 未知、良好、已降级或错误。“未知”表明该实现一般情况下能返回此属性，但是当前这一次无法返回。\n“良好”表示 ManagedElement 运行正常。\n“已降级”表示 ManagedElement 运行状况低于正常水平。\n“错误”表示 ManagedElement 出现了错误状况。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "..", "0x8000.."} : Amended ToSubclass,Values{"未知", "良好", "已降级", "错误", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 PrimaryStatus;
};

[Description("CIM_LogicalElement 是所有代表抽象系统组件(例如文件、进程或 LogicalDevice)的系统组件的基类。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalElement : CIM_ManagedSystemElement
{
};

[Description("此类对 LogicalElement 进行了扩展，以便对已启用和禁用的元素的概念进行抽象，如 LogicalDevice 或 ServiceAccessPoint。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_EnabledLogicalElement : CIM_LogicalElement
{
  [Description("EnabledState 是一个整数枚举，指明元素的启用和禁用状态。它还可以指明这些请求的状态之间的转换。例如，关闭(值=4)和启动(值=10)是启用和禁用之间暂时性的状态。以下文本简要概述了各种启用和禁用的状态: \n“已启用”(2)指明该元素正在执行或可以执行命令，将处理任何排队的命令，并将新请求排入队列。\n“已禁用”(3)指明该元素不会执行命令，并将丢弃任何新请求。\n“正在关闭”(4)指明该元素正在进入“已禁用”状态。\n“不适用”(5)指明该元素不支持进行启用或禁用。\n“已启用但脱机”(6)指明该元素可能正在完成命令，并将丢弃任何新请求。\n“测试”(7)指明该元素处于测试状态。\n“已推迟”(8)指明该元素可能正在完成命令，但会将任何新请求排入队列。\n“静止”(9)指明该元素已禁用但处于限制模式。\n“正在启动”(10)指明该元素正在进入“已启用”状态。并将新请求排入队列。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11..32767", "32768..65535"} : Amended ToSubclass,Values{"未知", "其他", "已启用", "已禁用", "正在关闭", "不适用", "已启用但脱机", "正在测试", "已推迟", "静止", "正在启动", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 EnabledState;
  [Description("描述当 EnabledState 属性设置为 1“其他”时，元素的启用或禁用状态的字符串。当 EnabledState 是 1 之外的任何值时，必须将此属性设置为空。") : Amended ToSubclass] string OtherEnabledState;
  [Description("RequestedState 是一个整数枚举，指明元素最后一次请求或所需的状态，与用来执行请求的机制无关。元素的实际状态由 EnabledState 表示。提供此属性是为了比较最后一次请求的状态和当前启用或禁用的状态。注意，当 EnabledState 设置为 5 (“不适用”)时，此属性无意义。请参阅 EnabledState 属性描述，以了解 RequestedState 枚举中的值的解释。\n“未知”(0)指明该元素最后一次请求的状态未知。\n注意，值“无更改”(5)已弃用，取而代之用于指明最后一次请求状态的是“未知”(0)。如果最后一次请求或所需状态未知，RequestedState 应具有值“未知”(0)，但可以具有值“无更改”(5)。“脱机”(6)指明已请求该元素转换为“已启用但脱机”的 EnabledState。\n应注意，RequestedState 中有两个构建在 EnabledState 的状态之上的新值。这两个值是“重新引导”(10)和“重置”(11)。“重新引导”指明先执行“关机”操作，然后转到“启用”状态。“重置”指明元素首先是“已禁用”，然后是“已启用”。还应注意请求“关机”与“已禁用”之间的区别。“关机”请求有序转换到“已禁用”状态，可能涉及关闭电源，以便完全擦除任何现有状态。“已禁用”状态请求立即禁用该元素，使之不执行或接受任何命令或处理请求。\n\n此属性设置为方法调用(如 CIM_Service 上的 Start 或 StopService)的结果，也可以覆盖并在子类中定义为 WRITEable。此方法视为高于 WRITEable 属性，因为它允许显式调用操作和返回结果代码。\n\n如果知道 EnabledLogicalElement 不支持最后一次 RequestedState，则该属性应为 NULL 或者具有值 12“不适用”。") : Amended ToSubclass,ValueMap{"0", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "..", "32768..65535"} : Amended ToSubclass,Values{"未知", "已启用", "已禁用", "关机", "无更改", "脱机", "测试", "已推迟", "静止", "重新引导", "重置", "不适用", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 RequestedState;
  [Description("一个枚举值，用于指明管理员对元素“已启用”状态的默认或启动配置。默认情况下，元素为“已启用”(值=2)。") : Amended ToSubclass,ValueMap{"2", "3", "5", "6", "7", "9", "..", "32768..65535"} : Amended ToSubclass,Values{"已启用", "已禁用", "不适用", "已启用但脱机", "没有默认值", "静止", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 EnabledDefault;
  [Description("元素的 EnabledState 最后一次更改的日期和时间。如果元素的状态未更改并填充了此属性，则必须将其设置为一个 0 间隔值。如果请求了状态更改，但已被拒绝或尚未处理，则不得更新该属性。") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [Description("AvailableRequestedStates 指明方法 RequestStateChange 的 RequestedState 参数的可能值，用于发起状态更改。列出的值应是 CIM_EnabledLogicalElementCapabilities 的关联实例的 RequestedStatesSupported 属性中所含值的子集，其中选择的值是 CIM_EnabledLogicalElement 当前状态的一个函数。如果一个实现可以播发一组可能的值作为当前状态的函数，则此属性可以为非空。如果一个实现无法确定一组可能的值作为当前状态的函数，则此属性应为空。") : Amended ToSubclass,ValueMap{"2", "3", "4", "6", "7", "8", "9", "10", "11", ".."} : Amended ToSubclass,Values{"已启用", "已禁用", "关机", "脱机", "测试", "推迟", "静止", "重新引导", "重置", "DMTF 保留"} : Amended ToSubclass] uint16 AvailableRequestedStates[];
  [Description("TransitioningToState 指明该实例正在转换的目标状态。\n值 5“无更改”应指明没有正在进行任何转换。值 12“不适用”应指明该实现不支持表示正在进行的转换。\n5 或 12 以外的值应标识此元素正在转换到哪种状态。") : Amended ToSubclass,ValueMap{"0", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", ".."} : Amended ToSubclass,Values{"未知", "已启用", "已禁用", "关机", "无更改", "脱机", "测试", "推迟", "静止", "重新引导", "重置", "不适用", "DMTF 保留"} : Amended ToSubclass] uint16 TransitioningToState;
  [Description("请求将该元素的状态更改为 RequestedState 参数中指定的值。当请求的状态更改发生时，元素的 EnabledState 和 RequestedState 将相同。多次调用 RequestStateChange 方法可能导致早先的请求被覆盖或丢失。\n返回代码 0 应指明成功发起了状态更改。\n返回代码 3 应指明无法在 TimeoutPeriod 参数指定的间隔内完成状态转换。\n返回代码 4096 (0x1000)应指明已成功发起状态更改，已创建一个 ConcreteJob，并且其引用已在输出参数 Job 中返回。任何其他返回代码都指明某种错误情况。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098", "4099", "4100..32767", "32768..65535"} : Amended ToSubclass,Values{"已完成且无错误", "不支持", "未知或未指定的错误", "在超时期限内无法完成", "已失败", "无效的参数", "正在使用", "DMTF 保留", "已检查方法参数 - 作业已启动", "无效的状态转换", "不支持使用超时参数", "忙", "方法保留", "供应商特定"} : Amended ToSubclass] uint32 RequestStateChange([IN,Description("为元素请求的状态。如果 RequestStateChange 方法的返回代码是 0 (“已完成且无错误”) 或 4096 (0x1000) (“作业已启动”)，则此信息将放入该实例的 RequestedState 属性中。请参阅 EnabledState 和 RequestedState 属性的说明，以了解有关 RequestedState 值的详细解释。") : Amended ToSubclass,ValueMap{"2", "3", "4", "6", "7", "8", "9", "10", "11", "..", "32768..65535"} : Amended ToSubclass,Values{"已启用", "已禁用", "关机", "脱机", "测试", "推迟", "静止", "重新引导", "重置", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 RequestedState,[IN(FALSE),OUT,Description("可能包含一个对 ConcreteJob 的引用，后者是为跟踪由方法调用启动的状态转换而创建。") : Amended ToSubclass] CIM_ConcreteJob Ref Job,[IN,Description("指定客户端希望转换到新状态所需的最长时间的超时期限。必须使用时间间隔格式指定 TimeoutPeriod。值为 0 或空的参数指明客户端转换没有时间要求。\n如果此属性不含 0 或空，并且该实现不支持此参数，应返回一个返回代码“不支持使用超时参数”。") : Amended ToSubclass] datetime TimeoutPeriod);
};

[Description("硬件实体的抽象或仿真，它可能在物理硬件中实现也可能未实现。用于管理其操作或配置的 LogicalDevice 的任何特性都包含在 LogicalDevice 对象中或与该对象关联。打印机的操作属性的示例应该支持纸张尺寸，否则将检测到错误。传感器设备的配置属性的示例应该是阈值设置。LogicalDevice 可能存在多种配置。这些配置可能包含在 Setting 对象中并与 LogicalDevice 关联。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_LogicalDevice : CIM_EnabledLogicalElement
{
  [Key,Description("作用域系统的 CreationClassName。") : Amended ToSubclass] string SystemCreationClassName;
  [Key,Description("作用域系统的名称。") : Amended ToSubclass] string SystemName;
  [Key,Description("CreationClassName 指明创建实例时使用的类或子类的名称。与此类的其他键属性一起使用时，此属性可唯一标识此类及其子类的所有实例。") : Amended ToSubclass] string CreationClassName;
  [Key,Description("唯一命名 LogicalDevice 的地址或其他标识性信息。") : Amended ToSubclass] string DeviceID;
  [Description("布尔值，指明设备是否支持电源管理。已弃用此属性，取而代之的是使用一个关联的 PowerManagementCapabilities 类(使用 ElementCapabilities 关系进行关联)来指明支持电源管理。") : Amended ToSubclass] boolean PowerManagementSupported;
  [Description("一个枚举数组，用于描述设备的电源管理功能。已弃用此属性，取而代之的是使用一个关联的 PowerManagementCapabilities 类中的 PowerCapabilites 属性。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7"} : Amended ToSubclass,Values{"未知", "不支持", "已禁用", "已启用", "自动进入节能模式", "可设置电源状态", "支持电源重启", "支持定时通电"} : Amended ToSubclass] uint16 PowerManagementCapabilities[];
  [Description("设备的主要可用性和状态(其他状态信息可以使用“其他可用性”数组属性指定)。例如，Availability 属性指明设备正在运行并具有全功耗状态(值=3)，或者处于警告(4)、测试(5)、已降级(10)或节能状态(值 13-15 和 17)。对于节能状态，各值的定义如下: 值 13 (“节能 - 未知”)指明已知设备处于节能模式，但不知它在此模式中的确切状态；14 (“节能 - 低功耗模式”)指明设备处于节能状态，但仍正常运行，并可能体现出已降级的性能；15 (“节能 - 待机”)描述设备未正常运行，但可以“迅速”进入全功耗状态；值 17 (“节能 - 警告”)指明设备处于警告状态，同时还处于节能模式。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"} : Amended ToSubclass,Values{"其他", "未知", "正在运行/全功耗", "警告", "正在测试", "不适用", "关闭电源", "脱机", "休息", "已降级", "未安装", "安装错误", "节能 - 未知", "节能 - 低功耗模式", "节能 - 待机", "电源重启", "节能 - 警告", "已暂停", "未就绪", "未配置", "静止"} : Amended ToSubclass] uint16 Availability;
  [Description("StatusInfo 属性指明逻辑设备是处于启用(值 = 3)、禁用(值 = 4)还是某个其他(1)或未知(2)状态。如果此属性未应用于 LogicalDevice，应使用值 5 (“不适用”)。StatusInfo 已弃用，取而代之的是一个命名更清楚并具有更多枚举值的属性(EnabledState，从 ManagedSystemElement 继承)。\n如果设备为“已启用”(值=3)，则指明已通电，并且已配置和可操作。设备可能主动正常运行也可能不主动运行，具体取决于其 Availability (或 AdditionalAvailability)指明其处于“正在运行/全功耗”(值=3)状态还是“脱机”(值=8)状态。在已启用但脱机模式中，设备可能在执行带外请求，如执行诊断。如果“已禁用”)(StatusInfo 值=4)，则设备只能处于“已禁用”或关机状态。在个人电脑环境中，“已禁用”指明设备的驱动程序在堆栈中不可用。在其他环境中，可以通过删除设备的配置文件来禁用设备。被禁用的设备在物理上存在于系统中并消耗资源，但在加载驱动程序或加载配置文件或者发生某些其他“启用”活动之前无法通信。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5"} : Amended ToSubclass,Values{"其他", "未知", "已启用", "已禁用", "不适用"} : Amended ToSubclass] uint16 StatusInfo;
  [Description("LastErrorCode 捕获 LogicalDevice 报告的上一个错误代码。") : Amended ToSubclass] uint32 LastErrorCode;
  [Description("ErrorDescription 是一个自由格式字符串，提供有关 LastErrorCode 中所记录错误的更多信息，以及可以采取的任何纠正操作的信息。") : Amended ToSubclass] string ErrorDescription;
  [Description("ErrorCleared 是一个布尔属性，指明现已清除 LastErrorCode 中报告的错误。") : Amended ToSubclass] boolean ErrorCleared;
  [Description("OtherIdentifyingInfo 捕获 DeviceID 信息之外可能用于标识 LogicalDevice 的其他数据。例如，在此属性中保持设备操作系统的用户友好名称。") : Amended ToSubclass] string OtherIdentifyingInfo[];
  [Description("此设备自上次电源重启以来连续处于通电状态的小时数。") : Amended ToSubclass] uint64 PowerOnHours;
  [Description("此设备通电的总小时数。") : Amended ToSubclass] uint64 TotalPowerOnHours;
  [Description("一个自由格式字符串数组，在 OtherIdentifyingInfo 数组的条目后提供解释和详细信息。注意，此数组的每个条目都与 OtherIdentifyingInfo 中位于同一索引的条目关联。") : Amended ToSubclass] string IdentifyingDescriptions[];
  [Description("在 Availability 属性中指定的可用性和状态之外，设备的其他可用性和状态。Availability 属性指示设备的主要状态和可用性。在某些情况下，这不足以指示设备的完整状态。这时，可以使用 AdditionalAvailability 属性提供进一步的信息。例如，设备的主要可用性可能是“脱机”(值=8)，但它还可能处于低功耗状态(AdditonalAvailability 值=14)，或者设备可能在执行诊断(AdditionalAvailability 值=5，“正在测试”)。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"} : Amended ToSubclass,Values{"其他", "未知", "正在运行/全功耗", "警告", "正在测试", "不适用", "关闭电源", "脱机", "休息", "已降级", "未安装", "安装错误", "节能 - 未知", "节能 - 低功耗模式", "节能 - 待机", "电源重启", "节能 - 警告", "已暂停", "未就绪", "未配置", "静止"} : Amended ToSubclass] uint16 AdditionalAvailability[];
  [Description("MaxQuiesceTime 属性已弃用。当评估“静止”的使用时，发现此单一属性不足以描述设备何时自动退出静止状态。事实上，设备退出静止状态最可能的情形是基于排队的未处理请求的数量而不是最长时间。这将在以后重新评估和重新定位。\n设备可以在“静止”状态下运行的最长时间(以毫秒为单位)。设备的状态在其 Availability 和 AdditionalAvailability 属性中定义，其中“静止”由值 21 表示。时限结束时发生什么情况取决于特定设备。设备可能取消静止状态、可能脱机或采取其他操作。值为 0 指明设备可以无限制保持静止。") : Amended ToSubclass] uint64 MaxQuiesceTime;
  [Description("设置设备的电源状态。已弃用此方法，取而代之的是使用关联的 PowerManagementService 类中的 SetPowerState 方法。") : Amended ToSubclass] uint32 SetPowerState([IN,Description("要设置的电源状态。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6"} : Amended ToSubclass,Values{"全功耗", "节能 - 低功耗模式", "节能 - 待机", "节能 - 其他", "电源重启", "关闭电源"} : Amended ToSubclass] uint16 PowerState,[IN,Description("Time 指明应何时设置电源状态，它要么是一个常规的日期时间值，要么是一个间隔时间值(其中间隔时间从收到方法调用时开始)。") : Amended ToSubclass] datetime Time);
  [Description("请求重置 LogicalDevice。如果请求成功执行，返回值应为 0；如果不支持请求，则返回 1；如果发生错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 Reset();
  [Description("EnableDevice 方法已弃用，取而代之的是更通用的 RequestStateChange 方法，它与此方法提供的功能直接重叠。\n请求启用(“已启用”输入参数 = TRUE)或禁用(= FALSE) LogicalDevice。如果成功，设备的 StatusInfo/EnabledState 属性应反映所需的状态(已启用/已禁用)。注意，此方法的函数与 RequestedState 属性重叠。已向模型添加 RequestedState 来维护上次状态请求的记录(例如，一个持久值)。调用 EnableDevice 方法应适当地设置 RequestedState 属性。\n如果请求成功执行，返回代码应为 0；如果不支持请求，则返回 1；如果发生错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 EnableDevice([IN,Description("如果为 TRUE 则启用该设备，如果为 FALSE 则禁用该设备。") : Amended ToSubclass] boolean Enabled);
  [Description("OnlineDevice 方法已被弃用，取而代之的是更通用的 RequestStateChange 方法，它与此方法提供的功能直接重叠。\n请求将 LogicalDevice 联机(“联机”输入参数 = TRUE)或脱机(= FALSE)。“联机”指明该设备已准备好接受请求，并可以操作和完全正常运行。在此情况下，设备的 Availability 属性将设置为值 3 (“正在运行/全功耗”)。“脱机”指明设备已通电并可以操作，但未处理功能请求。在脱机状态下，该设备也许能够执行诊断或生成操作警报。例如，当按下打印机上的“脱机”按钮时，该设备将不再能够处理打印作业，但可以执行诊断或维修。\n如果此方法成功，则设备的 Availability 和 AdditionalAvailability 属性应反映更新的状态。如果尝试将设备联机或脱机时发生故障，该设备将保持其当前状态。即，如果请求不成功，则不应将设备置于不确定状态。在将设备从“脱机”模式重新“联机”时，该设备应还原为其上次的“联机”状态(如果有可能)。只有“已启用”并配置了 EnabledState/StatusInfo 的设备可以联机或脱机。\n如果成功，OnlineDevice 应返回 0；如果根本不支持请求，则返回 1；如果由于设备的当前状态而不支持请求，则返回 2；如果发生任何其他错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。\n注意，此方法的函数与 RequestedState 属性重叠。已向模型添加 RequestedState 来维护上次状态请求的记录(例如，一个持久值)。调用 OnlineDevice 方法应适当地设置 RequestedState 属性。") : Amended ToSubclass] uint32 OnlineDevice([IN,Description("如果为 TRUE 则将设备联机，如果为 FALSE 则将设备脱机。") : Amended ToSubclass] boolean Online);
  [Description("QuiesceDevice 方法已弃用，取而代之的是更通用的 RequestStateChange 方法，它与此方法提供的功能直接重叠。\n请求 LogicalDevice 干净地停止当前所有活动(“静止”输入参数 = TRUE)或恢复活动(= FALSE)。要使用此方法使设备静止，该设备的 Availability (或 Additional Availability)应为“正在运行/全功耗”)(值=3)，并且 EnabledStatus/StatusInfo 应为“已启用”。例如，如果已静止，则设备可能脱机执行诊断，或者由于关闭电源或热交换而禁用。要使用此方法使设备“取消静止”，该设备的 Availability (或 AdditionalAvailability) 应为“静止”(值=21)，并且 EnabledStatus/StatusInfo 应为“已启用”。在此情况下，该设备将返回到“已启用”和“正在运行/全功耗”状态。\n此方法的返回代码应指明静止成功或失败。如果成功，应返回 0；如果根本不支持请求，则返回 1；如果由于设备的当前状态而不支持请求，则返回 2；如果发生任何其他错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 QuiesceDevice([IN,Description("如果设置为 TRUE 则干净地停止所有活动，如果为 FALSE 则恢复活动。") : Amended ToSubclass] boolean Quiesce);
  [Description("请求设备在后备存储中捕获其当前配置、设置和/或状态信息。目的是为了在以后利用此信息(通过 RestoreProperties 方法)使设备返回其当前“状况”。此方法可能不被所有设备支持。如果成功，此方法应返回 0；如果不支持请求，则返回 1；如果发生任何其他错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 SaveProperties();
  [Description("请求设备从后备存储中重新建立其配置、设置和/或状态信息。目的是为了较早捕获此信息(通过 SaveProperties 方法)，并利用它使设备返回其较早时的“状况”。此方法可能不被所有设备支持。如果成功，此方法应返回 0；如果不支持请求，则返回 1；如果发生任何其他错误，则返回某个其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 RestoreProperties();
};

[Description("传感器是一个能够测量或报告某些物理属性特征的实体 - 例如，计算机系统的温度或电压特征。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_Sensor : CIM_LogicalDevice
{
  [Description("传感器的类型，如电压或温度传感器。如果将类型设置为“其他”，则可以使用 OtherSensorType Description 进一步确定类型，如果传感器有数字读数，则可以通过单位来隐式确定传感器的类型。不同传感器类型的描述如下: 温度传感器测量环境温度。电压和电流传感器测量电压和电流读数。转速计测量设备的速度/旋转。例如，风扇设备可能有一个关联的转速计测量其速度。计数器是一个通用的传感器，用于测量设备的数字属性。计数器的值可以清除，但永远不会减小。开关传感器的状态有打开/关闭、开/关或上/下。锁的状态有锁定/解除锁定。湿度、烟雾检测和空气流量传感器测量相应的环境特征。存在传感器检测 PhysicalElement 的存在。能耗传感器测量由受管理单元消耗的即时能耗。电能生产传感器测量由受管理单元产生的即时电能，如电源或稳压器。压力传感器用于报告压力。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "..", "32768..65535"} : Amended ToSubclass,Values{"未知", "其他", "温度", "电压", "电流", "转速计", "计数器", "开关", "锁", "湿度", "烟雾检测", "存在", "空气流量", "功耗", "电能生产", "压力", "DMTF 保留", "供应商保留"} : Amended ToSubclass] uint16 SensorType;
  [Description("描述传感器类型的字符串 - 在 SensorType 属性设置为“其他”时使用。") : Amended ToSubclass] string OtherSensorTypeDescription;
  [Description("PossibleStates 枚举传感器的字符串输出。例如，“开关”传感器可能输出“开”或“关”状态。开关的另一实现可能输出“打开”和“关闭”状态。另一示例是支持阈值的 NumericSensor。此传感器可以报告“一般”、“致命上限”和“非严重下限”等状态。不发布读数和阈值但内部存储此数据的 NumericSensor 仍可以报告其状态。") : Amended ToSubclass] string PossibleStates[];
  [Description("传感器指明的当前状态。它始终是“PossibleStates”之一。") : Amended ToSubclass] string CurrentState;
  [Description("传感器硬件或仪器用来检测传感器当前状态的轮训间隔。") : Amended ToSubclass] uint64 PollingInterval;
};

[Description("数字传感器能够返回数字读数，并可选择支持阈值设置。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_NumericSensor : CIM_Sensor
{
  [Description("此传感器返回的值的基本单位。此传感器返回的所有值都使用通过(BaseUnits * 10 的 UnitModifier 次方)获取的单位表示。例如，如果 BaseUnits 是伏，UnitModifier 是 -6，则返回的值的单位就是微伏。不过，如果 RateUnits 属性设置为“无”以外的值，则单位将进一步限定为比率单位。在上例中，如果 RateUnits 设置为“每秒”，则传感器返回的值为微伏/秒。这些单位应用于传感器的所有数字属性，但由单位限定符明确覆盖的除外。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66"} : Amended ToSubclass,Values{"未知", "其他", "摄氏度", "华氏度", "开氏度", "伏", "安培", "瓦", "焦耳", "库仑", "伏安", "尼特", "流明", "勒克斯", "烛光", "千帕", "磅/平方英寸", "牛顿", "立方英尺每分钟", "每分钟转数", "赫兹", "秒", "分钟", "小时", "天", "周", "密耳", "英寸", "英尺", "立方英寸", "立方英尺", "米", "立方厘米", "立方米", "升", "液量盎司", "弧度", "球面度", "转", "周期", "重力", "盎司", "磅", "英尺-磅", "盎司-英寸", "高斯", "吉伯", "亨利", "法拉", "欧姆", "西门子", "摩尔", "贝克勒耳", "PPM (百万分之一)", "分贝", "DbA", "DbC", "戈瑞", "希沃特", "色温开氏度", "位", "字节", "字(数据)", "双字", "四字", "百分比", "帕斯卡"} : Amended ToSubclass] uint16 BaseUnits;
  [Description("此传感器返回的值的单位乘数。此传感器返回的所有值都使用通过(BaseUnits * 10 的 UnitModifier 次方)获取的单位表示。例如，如果 BaseUnits 是伏，UnitModifier 是 -6，则返回的值的单位就是微伏。不过，如果 RateUnits 属性设置为“无”以外的值，则单位将进一步限定为比率单位。在上例中，如果 RateUnits 设置为“每秒”，则传感器返回的值为微伏/秒。这些单位应用于传感器的所有数字属性，但由单位限定符明确覆盖的除外。") : Amended ToSubclass] sint32 UnitModifier;
  [Description("指定此传感器返回的单位是否为比率单位。此传感器返回的所有值都使用通过(BaseUnits * 10 的 UnitModifier 次方)获取的单位表示。除非此属性(RateUnits)有一个“无”以外的值。例如，如果 BaseUnits 是伏，UnitModifier 是 -6，则返回的值的单位就是微伏。不过，如果 RateUnits 属性设置为“无”以外的值，则单位将进一步限定为比率单位。在上例中，如果 RateUnits 设置为“每秒”，则传感器返回的值为微伏/秒。这些单位应用于传感器的所有数字属性，但由单位限定符明确覆盖的除外。CurrentReading 的任何实现都应符合计数器或计量器限定符，具体取决于要建模的传感器的特征。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} : Amended ToSubclass,Values{"无", "每微秒", "每毫秒", "每秒", "每分钟", "每小时", "每天", "每周", "每月", "每年"} : Amended ToSubclass] uint16 RateUnits;
  [Description("传感器指明的当前值。") : Amended ToSubclass] sint32 CurrentReading;
  [Description("NominalReading 指明 NumericSensor 的“正常”值或应得的值。") : Amended ToSubclass] sint32 NominalReading;
  [Description("NormalMax 为用户提供有关 NumericSensor 的正常最大范围的指导。") : Amended ToSubclass] sint32 NormalMax;
  [Description("NormalMin 为用户提供有关 NumericSensor 的正常最小范围的指导。") : Amended ToSubclass] sint32 NormalMin;
  [Description("MaxReadable 指明可以由 NumericSensor 读取的被测量属性的最大值。") : Amended ToSubclass] sint32 MaxReadable;
  [Description("MinReadable 指明可以由 NumericSensor 读取的被测量属性的最小值。") : Amended ToSubclass] sint32 MinReadable;
  [Description("Resolution 指明传感器解析被测量属性中的差异的能力。此测量的单位由 BaseUnit*UnitModifier/RateUnit 确定。") : Amended ToSubclass] uint32 Resolution;
  [Description("此属性已弃用，取而代之的是使用 Resolution 和 Accuracy 属性。\n指明传感器对被测量属性的公差。Tolerance 与 Resolution 和 Accuracy 一起用于计算被测量物理属性的实际值。Tolerance 可能各不相同，具体取决于设备在其动态范围内是否呈线性。") : Amended ToSubclass] sint32 Tolerance;
  [Description("指明传感器对被测量属性的精度。其值记录为正/负百分比。Accuracy 与 Resolution 一起用于计算被测量物理属性的实际值。Accuracy 可能各不相同，具体取决于设备在其动态范围内是否呈线性。") : Amended ToSubclass] sint32 Accuracy;
  [Description("指明传感器在其动态范围内呈线性分布。") : Amended ToSubclass] boolean IsLinear;
  [Description("指明围绕阈值构建的边界。此边界可以防止传感器读数在非常接近其阈值波动时可能产生的不必要的状态更改。这可能是由于传感器的公差/精度/解析度或者由于环境因素造成的。一旦超过阈值，传感器的状态应改变。但是，不应在新旧状态之间波动，除非传感器读数中的更改超过滞后值。此测量的单位由 BaseUnit*UnitModifier/RateUnit 确定。") : Amended ToSubclass] uint32 Hysteresis;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 介于 LowerThresholdNonCritical 和 UpperThresholdNonCritical 之间，则传感器报告一个正常值。如果 CurrentReading 介于 LowerThresholdNonCritical 和 LowerThresholdCritical 之间，则 CurrentState 是 NonCritical。") : Amended ToSubclass] sint32 LowerThresholdNonCritical;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 介于 LowerThresholdNonCritical 和 Upper ThresholdNonCritical 之间，则传感器报告一个正常值。如果 CurrentReading 介于 UpperThreshold NonCritical 和 UpperThresholdCritical 之间，则 CurrentState 是 NonCritical。") : Amended ToSubclass] sint32 UpperThresholdNonCritical;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 介于 LowerThresholdCritical 和 LowerThresholdFatal 之间，则 CurrentState 是 Critical。") : Amended ToSubclass] sint32 LowerThresholdCritical;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 介于 UpperThresholdCritical 和 UpperThresholdFatal 之间，则 CurrentState 是 Critical。") : Amended ToSubclass] sint32 UpperThresholdCritical;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 低于 LowerThresholdFatal，则 CurrentState 是 Fatal。") : Amended ToSubclass] sint32 LowerThresholdFatal;
  [Description("传感器的阈值指定一个范围(最小和最大值)，用于确定传感器在以下哪个条件下操作：Normal(正常)、NonCritical(非严重)、Critical(严重) 或 Fatal(致命)。如果 CurrentReading 高于 UpperThresholdFatal，则 CurrentState 是 Fatal。") : Amended ToSubclass] sint32 UpperThresholdFatal;
  [Description("一个数组，表示该传感器支持的阈值。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5"} : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 SupportedThresholds[];
  [Description("一个数组，表示当前为此传感器启用的阈值。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5"} : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 EnabledThresholds[];
  [Description("一个数组，表示传感器支持的可写阈值。") : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5"} : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 SettableThresholds[];
  [Description("此方法将阈值重置为硬件默认值。如果成功，此方法返回 0；如果不支持，则返回 1；如果发生错误，则返回任何其他值。 在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 RestoreDefaultThresholds();
  [Description("此方法已弃用，因为电流传感器读数可以通过 GetInstance 操作检索。\n对于非线性传感器，在电流读数移动时，解析度、精度、公差和滞后各不相同。可以使用此方法获取指定读数的这些因数。如果成功，则返回 0；如果不支持，则返回 1；如果发生错误，则返回任何其他值。在子类中，可以使用该方法上的 ValueMap 限定符指定可能返回的代码集。ValueMap 内容“转换”成的字符串还可以在子类中指定为值数组限定符。") : Amended ToSubclass] uint32 GetNonLinearFactors([IN,Description("要获取其信息的传感器读数。") : Amended ToSubclass] sint32 SensorReading,[IN(FALSE),OUT,Description("读数的精度。") : Amended ToSubclass] sint32 Accuracy,[IN(FALSE),OUT,Description("读数的解析度。") : Amended ToSubclass] uint32 Resolution,[IN(FALSE),OUT,Description("读数的公差。") : Amended ToSubclass] sint32 Tolerance,[IN(FALSE),OUT,Description("读数的滞后。") : Amended ToSubclass] uint32 Hysteresis);
};

[Description("PowerSupply LogicalDevice 的功能和管理。") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class CIM_PowerSupply : CIM_LogicalDevice
{
  [Description("布尔值，指明电源是否为开关电源(而非线性电源)。") : Amended ToSubclass] boolean IsSwitchingSupply;
  [Description("此电源的输入电压范围 1 的低电压(以毫伏为单位)。值为 0 表示“未知”。") : Amended ToSubclass] uint32 Range1InputVoltageLow;
  [Description("此电源的输入电压范围 1 的高电压(以毫伏为单位)。值为 0 表示“未知”。") : Amended ToSubclass] uint32 Range1InputVoltageHigh;
  [Description("此电源输入频率范围 1 低端的频率(以赫兹为单位)。值为 0 表示直流。") : Amended ToSubclass] uint32 Range1InputFrequencyLow;
  [Description("此电源输入频率范围 1 高端的频率(以赫兹为单位)。值为 0 表示直流。") : Amended ToSubclass] uint32 Range1InputFrequencyHigh;
  [Description("此电源输入电压范围 2 的低电压(以毫伏为单位)。值为 0 表示“未知”。") : Amended ToSubclass] uint32 Range2InputVoltageLow;
  [Description("此电源输入电压范围 2 的高电压(以毫伏为单位)。值为 0 表示“未知”。") : Amended ToSubclass] uint32 Range2InputVoltageHigh;
  [Description("此电源输入频率范围 2 低端的频率(以赫兹为单位)。值为 0 表示直流。") : Amended ToSubclass] uint32 Range2InputFrequencyLow;
  [Description("此电源输入频率范围 2 高端的频率(以赫兹为单位)。值为 0 表示直流。") : Amended ToSubclass] uint32 Range2InputFrequencyHigh;
  [Description("ActiveInputVoltage 指明当前正在使用哪个输入电压范围。范围 1、范围 2 或“两者”可以分别使用值 3、4 或 5 指定。如果电源当前未消耗电能，则可以指定值 6 (“都不”)。此信息在 PowerSupply 的子类 UPS 中是必需的。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6"} : Amended ToSubclass,Values{"其他", "未知", "范围 1", "范围 2", "两者", "都不"} : Amended ToSubclass] uint16 ActiveInputVoltage;
  [Description("TypeOfRangeSwitching 描述此 PowerSupply 中实施的输入电压范围切换的类型。例如，可以指定自动切换(值=4)。") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6"} : Amended ToSubclass,Values{"其他", "未知", "手动", "自动切换", "大范围", "不适用"} : Amended ToSubclass] uint16 TypeOfRangeSwitching;
  [Description("表示 PowerSupply 的总输出电能(以毫瓦为单位)。0 表示“未知”。") : Amended ToSubclass] uint32 TotalOutputPower;
};
