#pragma namespace("\\\\.\\Root\\CIMV2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\Root\\CIMV2\\ms_804")
[Description("CIM_DiagnosticTest 类代表执行一项测试的能力。特定的诊断测试可通过创建其子类和/或创建此对象的实例来定义。为更详尽地定义一种测试(例如额外的属性和方法),恰当的方法是创建子类。要指明某一测试存在并能应用于特定的 ManagedSystemElement,创建 DiagnosticTest 类的实例可能即足够。") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticTest : CIM_Service
{
[Description("每一 Characteristic 描述如下:\n \n* \"是唯一的\" (值=2)仅在该诊断不能同时运行一项以上测试时才为该测试模块指定,不论其支持多少个 SystemElements。通常,这发生于硬件或软件的制约使该测试不能运行多个并发实例时.如果该诊断对多个 SystemElements 运行,但每个 Element 只能运行一次,则在 DiagnosticTestForMSE 的恰当实例上设置 IsExclusiveForMSE 布尔属性值。\n\n* 如果设置了\"是交互式的\" (值=3),则该诊断在测试之前,之中或之后显示一条消息。\n\n* 如果该诊断将毁坏数据,或者将重新配置被测试的 Element,则设置\"是破坏的\" (值=4)。\n\n* \"是危险的\" (值=5)表示如测试中断,数据可能丢失.有些测试先复制数据,执行测试,然后将被测实体中的数据恢复至原先的配置.如果测试中断,就可能发生数据丢失或被测 ManagedSystemElement 的重新配置。\n\n* 如果设置了 \"是测试包\" (值=6),该测试实际上是一组包装在一起的低水平诊断。\n\n \"支持 PercentOfTestCoverage\" (值=7)表示可使用 Diagnostic Setting 的 PercentOfTestCoverage 属性来指定减少测试覆盖范围的请求。\n\n 此外,还可指定\"未知\" (0)和\"其他\" (1)。如果定义了\"其他\"。在该类的 OtherCharacteristicDescription 属性中可找到更多细节。") : Amended ToSubclass,ValueMap{"未知", "其他", "为唯一", "为交互性", "为破坏性", "有风险", "为数据包", "支持 PercentOfTestCoverage"} : Amended ToSubclass] uint16 Characteristics[];
[Description("当其值设为 1 (\"其他\")时,提供关于 Characteristic 的更多信息。") : Amended ToSubclass] string OtherCharacteristicDescription;
[Description("如果当前在执行此测试,InUse 属性设为 TRUE。要确定正在测试哪个 ManagedSystemElement,查询与此测试关联的 DiagnosticResult 对象(查询 DiagnosticResultForTest),而且 TestState 等于 4 (\"进行中\")。DiagnosticResult 对象使用 DiagnosticResultForMSE 与被测试的 SystemElement 关联。") : Amended ToSubclass] boolean IsInUse;
[Description("\"Expensive\"限定符可应用于此类及其 RunTest 方法。若是如此,ResourcesUsed 属性描述根据该测试的默认设置而被转成资本的资源。由于此属性是一个数组,因此可指定多个资源。") : Amended ToSubclass,ValueMap{"CPU", "内存", "硬盘", "CDROM", "软盘", "PCI 总线", "USB 总线", "1394 总线", "SCSI 总线", "IDE 总线", "网络", "ISA 总线", "EISA 总线", "VESA 总线", "PCMCIA 总线", "CardBus", "Access.bus", "NuBus", "AGP", "VME 总线", "Sbus IEEE 1396-1993", "MCA 总线", "GIO 总线", "XIO 总线", "HIO 总线", "PMC 总线", "SIO 总线"} : Amended ToSubclass] uint16 ResourcesUsed[];
[Description("RunTest 方法为指定的 ManagedSystemElement(用 SystemElement 输入参数定义)执行此测试。该测试的结果保存在一个 DiagnosticResult 对象中,该对象是一个参照,测试结果以 Result 输出参数返回其中。该测试应如何运行(即该测试的设置)在一个 DiagnosticSetting 对象(或 DiagnosticSetting 的一个子类)中定义。对一个 Setting 对象的参照是用 Setting 输入参数来指定。如果没有参照传送给该方法,可使用默认的 DiagnosticSetting。此默认 Setting 用 Core Model 的 DefaultSetting 关系与 DiagnoticTest 相关联。\n当 RunTest 开始执行时,应评估和捕获对时间敏感的设置值。提出此建议是因为 DiagnosticSetting 对象可随时修改,因此当前测试的设置值可能丢失。\n该方法的返回码预期会附着于 XML 返回码,如同它们被引入时一样。当前的标准返回值是:\n0 = OK(函数成功,但测试本身可能失败) \n1 = Unspecified Error(函数失败,原因未指明)\n2 = Not Implemented(未对此对象施行该函数)\n3 = Out Of Resources(组件未能分配所需资源,如内存,磁盘空间等)\n在一个子类中,可用该方法的 ValueMap 限定符来指定一组可能的返回码。ValueMap 的内容所'转换'成的字符串也可在该子类中作为 Values 数组限定符来指定。") : Amended ToSubclass] uint32 RunTest([IN] CIM_ManagedSystemElement Ref SystemElement,[IN] CIM_DiagnosticSetting Ref Setting,[OUT] CIM_DiagnosticResult Ref Result);
[Description("执行此方法将为此 DiagnosticTest 以及为指定的 ManagedSystemElement(用 SystemElement 输入参数定义)删除 DiagnosticResultForMSE 对象的所有实例.在 DiagnosticResultForMSE 实例中参照的 DiagnosticResults 也将被删除。此外,参照 DiagnosticResult 对象的关联 DiagnosticResultForTest 及本测试也将被删除.\n 定义了一个输出参数 - ResultsNotCleared - 这是一个字符串数组,它列出未能删除的 DiagnosticResults 的主键.此信息使得能够重新访问那些 Results,并且或者手工移除,或者采取其它纠正行动.\n该方法的返回码预期会附着于 XML 返回码,如同它们被引入时一样.当前的标准返回值是:\n0 = OK(函数成功,但测试本身可能失败) \n1 = Unspecified Error(函数失败,原因未指明)\n2 = Not Implemented(未对此对象施行该函数)\n3 = Out Of Resources(组件未能分配所需资源,如内存,磁盘空间等)\n在一个子类中,可用该方法的 ValueMap 限定符来指定一组可能的返回码.ValueMap 的内容所'转换'成的字符串也可在该子类中作为 Values 数组限定符来指定。") : Amended ToSubclass] uint32 ClearResults([IN] CIM_ManagedSystemElement Ref SystemElement,[OUT] String ResultsNotCleared[]);
[Description("在调用此方法及其完成之后,对指定的 ManagedSystemElement(用 SystemElement 输入参数定义)的特定测试将停止.要停止的测试用 Result 输入参数来指定.如果该测试的所有实例都应对 SystemElement 停止,则 Result 参照应为 NULL.该方法完成之后,测试状态和其它信息(如 PercentComplete) 保存在由 Result 输出参数定义的 DiagnosticResult 实例中.输出参数 TestingStopped 用于以下:\n 设为 TRUE,如测试成功停止。\n 设为 FALSE,如当前测试不能停止.\n 如设为 FALSE,测试将在诊断能够安全的停止测试时停止.要确定测试是否已停止及何时停止,检查 Result 参数定义的 DiagnosticResult 实例中的 TestState 属性.TestState 将从\"进行中\"改为\"停止\"(从 4 改为 5).\n该方法的返回码预期会附着于 XML 返回码,如同它们被引入时一样.当前的标准返回值是:\n0 = OK(函数成功,但测试本身可能失败)\n1 = Unspecified Error(函数失败,原因未指明)\n2 = Not Implemented(未对此对象施行该函数)\n3 = Out Of Resources(组件未能分配所需资源,如内存,磁盘空间等)\n在一个子类中,可用该方法的 ValueMap 限定符来指定一组可能的返回码.ValueMap 的内容所'转换'成的字符串也可在该子类中作为 Values 数组限定符来指定。") : Amended ToSubclass] uint32 DiscontinueTest([IN] CIM_ManagedSystemElement Ref SystemElement,[IN] CIM_DiagnosticResult Ref Result,[OUT] Boolean TestingStopped);
};
[Description("特定的诊断参数和异常指令通过创建子类和/创建 DiagnosticSetting 对象的实例来定义.要为一种测试类型提供更详细的设置值(如额外属性),创建子类较为恰当.当只需要通用设置值信息时,创建 DiagnosticSetting 类的实例可能就足够.\n来自 DiagnosticSetting 的数据被捕获在 DiagnosticResult 中.当 RunTest 开始执行时,应评估和捕获对时间敏感的设置值.提出此建议是因为 DiagnosticSetting 对象可随时修改,因此当前测试的设置值可能丢失.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticSetting : CIM_Setting
{
[Key,Description(" DiagnosticSetting 对象唯一的,籍之得名的标识符。一个可能的命名方案是使用 DiagnosticTest 的 CreationClassName 和 DiagnosticName,再加上 GUID(全球唯一标识符)来为 SettingID 命名。\n 注意:在企业层次,DiagnosticSetting 和所有的 DiagnosticTest 副本之间通常没有一对一的映射。所建议的命名常规应与企业规模相配。") : Amended ToSubclass] string SettingID;
[Description("设置记录入日志的警告消息的级别.例如,如果不要求警告信息,级别可设为\"无警告\"(值=0).使用\"缺少资源\"(值=1)将在找不到所需资源或硬件时生成警告.将其值设为 2 \"测试冲击\",将导致资源缺少和'测试冲击'两种警告(例如要求多次重试)都得到报告.") : Amended ToSubclass,Values{"无警告", "丢失资源", "正在测试影响", "所有警告"} : Amended ToSubclass] uint16 TestWarningLevel;
[Description("当此标志为 true 时,诊断测试将报告'soft error'(软错误).在此处,soft error(软错误)是指来自诊断程序的消息,报告硬件或驱动程序配置或者执行环境的已知缺陷.软错误的例子有:\"内存不足\",\"驱动程序 IOCTL 未实施\",\"在多边形填充测试中视频 RAM 比较失败——视频芯片组中的已知缺陷\"等.") : Amended ToSubclass] boolean ReportSoftErrors;
[Description("当此标志为 true 时,诊断测试将报告'状态消息'.在此处,状态消息表示诊断码处于检查点.状态消息的例子有:\"第一期完成\",\"复合模式\"等.") : Amended ToSubclass] boolean ReportStatusMessages;
[Description("当此标志为 true 时,测试在发现第一个错误后暂停.") : Amended ToSubclass] boolean HaltOnError;
[Description("当此标志为 true 时,测试软件应尝试通过减少覆盖范围或执行的测试数来以加速方式运行.") : Amended ToSubclass] boolean QuickMode;
[Units("百分率") : Amended ToSubclass,Description("要求测试程序软件将测试覆盖面降低到特定的百分比. 例如,硬盘扫描测试应以 50% 的覆盖率运行. 做到这一点的最有效方法是让测试软件进行隔磁道扫描,而不是仅扫描硬盘的前半部. 可以认为测试的有效性因所要求的测试的百分比大小而受其影响.此属性值的允许范围是从 0 到 100. \n此属性不一定对所有测试都适用. 如果在一项测试中可设置此属性, 则应在 DiagnosticTest 的 \"特性\" 阵列中输入值 7 (\"Supports PercentOfTestCoverage\").") : Amended ToSubclass] uint8 PercentOfTestCoverage;
};
[Description("当 DiagnosticTest 服务运行时,测试结果用 DiagnosticResult 对象或其子类之一来报告.一个 DiagnosticTest 可能因其服务已启动或因调用 RunTest 方法而运行.DiagnosticResults 通过 DiagnosticResultsForMSE 的一个实例关联而与其 Test 联系.\n对每一个运行的 DiagnosticTest,应创建一个 DiagnosticResult 或其子类之一的一个新实例.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticResult
{
[Key,Description("定域 Test 之 CreationClassName.") : Amended ToSubclass] string DiagnosticCreationClassName;
[Key,Description("定域 Test 之 Name.") : Amended ToSubclass] string DiagnosticName;
[Key,Description("DiagnosticResults 的一个实例的独特标识符.") : Amended ToSubclass] string ExecutionID;
[Key,Description("定域 Test 之 SystemCreationClassName.") : Amended ToSubclass] string DiagSystemCreationClassName;
[Key,Description("定域 Test 之 SystemName.") : Amended ToSubclass] string DiagSystemName;
[Description("上次更新结果的日期和时间.") : Amended ToSubclass] datetime TimeStamp;
[Description("如果此属性为 TRUE,则此 DiagnosticResult 总括一组 DiagnosticTests 测试包的执行结果.该测试包中的测试可循着一个测试的 DiagnosticResultForTest 关联,再使用 DiagnosticTestInPackage 聚集来辨认.各别 Results 可分解开来,方法是为每一个较低级别测试创建一个 DiagnosticResults 实例,并用 DiagnosticResultInPackage 关联聚集到'summary' Result 中.") : Amended ToSubclass] boolean IsPackage;
[Description("测试开始的日期和时间.") : Amended ToSubclass] datetime TestStartTime;
[Description("测试完成的日期和时间.") : Amended ToSubclass] datetime TestCompletionTime;
[Description("描述测试的进展情况.例如,如果测试被中断,TestState 将是\"停止\"(值=5);如果测试当前正在执行,TestState 将是\"进行中\"(4).") : Amended ToSubclass,Values{"未知 ", "其他", "通过", "失败", "正在进行", "已停止"} : Amended ToSubclass] uint16 TestState;
[Description("当在 TestState 中输入\"其他\"(值=1)时,OtherStateDescription 可用来描述测试的状态.") : Amended ToSubclass] string OtherStateDescription;
[Units("秒") : Amended ToSubclass,Description("DiagnosticCreationClassName 和 DiagnosticName 属性表明的进行 DiagnosticTest 操作的预计秒钟数.测试完成后,实际所用时间将通过从 TestCompletionTime 中减去 TestStartTime 确定. 关联的 DiagnosticTestForMSE 中也定义了类似属性.这两项属性的区别在于存储在关联中的值是一个用于 \"元素\" 和 \"测试\" 的通用测试执行时间. 而这里 (在 DiagnosticResult 中) 的值则是这一实例以给定设置运行测试的预计所需时间. CIM 客户可以通过将此值和关联 DiagnosticTestForMSE 的值进行比较来了解他们的设置对测试执行的影响.") : Amended ToSubclass] uint32 EstimatedTimeOfPerforming;
[Description("TestResults 储存一个或数个由 DiagnosticCreationClassName 和 DiagnosticName 参照而执行的 DiagnosticTest 的文字测试结果。一个条目被认为是阵列中的一个单元位置。每一条目均有时间信息并包含以下信息,格式亦如下: \n yyyymmddhhttssoutc|DiagnosticName|文本消息 \n其中: \n yyyy = 年份, 如: 2000 \n mm = 月份 (01 - 12) \n dd = 日期 (01 - 31) \n hh = 点钟 (00 - 24) \n tt = 分钟 (00-59) \n ss = 秒钟 (00-59) \n o = \"+\" 或 \"-\" 表示 UTC 更正字段符 \n utc = 与 UTC (全球统一时间) 相差的分钟数 \n DiagnosticName = 对已执行的 DiagnosticTest 对象的字符串引用\n 文本消息 = 无格式的字符串,即“测试结果”。") : Amended ToSubclass] string TestResults[];
[Units("百分率") : Amended ToSubclass,Description("到目前为止所执行的测试的百分比 (如果 TestState 属性设置为 \"正在进行\" ), 或已执行的整个测试的百分比 (如果 TestState 属性设置为任何已完成的状态 (\"Passed\", \"Failed\" 或 \"Stopped\")). 由于在 DiagnosticSetting (如 QuickMode, PercentOfTestCoverage 或 HaltOnError)中定义的参数,最终结果可能基于低于 100% 的覆盖率.") : Amended ToSubclass] uint8 PercentComplete;
[Description("设置记录入日志的警告消息的级别.例如,如果不要求警告信息,级别可设为\"无警告\"(值=0).使用\"缺少资源\"(值=1)将在找不到所需资源或硬件时生成警告.将其值设为 2 \"测试冲击\",将导致资源缺少和'测试冲击'两种警告(例如要求多次重试)都得到报告.") : Amended ToSubclass,Values{"无警告", "丢失资源", "正在测试影响", "所有警告"} : Amended ToSubclass] uint16 TestWarningLevel;
[Description("当此标志为 true 时,诊断测试将报告'soft error'(软错误).在此处,soft error(软错误)是指来自诊断程序的消息,报告硬件或驱动程序配置或者执行环境的已知缺陷.软错误的例子有:\"内存不足\",\"驱动程序 IOCTL 未实施\",\"在多边形填充测试中视频 RAM 比较失败——视频芯片组中的已知缺陷\"等.") : Amended ToSubclass] boolean ReportSoftErrors;
[Description("当此标志为 true 时,诊断测试将报告'状态消息'.在此处,状态消息表示诊断码处于检查点.状态消息的例子有:\"第一期完成\",\"复合模式\"等.") : Amended ToSubclass] boolean ReportStatusMessages;
[Description("当此标志为 true 时,测试在发现第一个错误后暂停.") : Amended ToSubclass] boolean HaltOnError;
[Description("当此标志为 true 时,测试软件应尝试通过减少覆盖范围或执行的测试数来以加速方式运行.") : Amended ToSubclass] boolean QuickMode;
[Units("百分率") : Amended ToSubclass,Description("要求测试程序软件将测试覆盖面降低到特定的百分比. 例如,硬盘扫描测试应以 50% 的覆盖率运行. 做到这一点的最有效方法是让测试软件进行隔磁道扫描,而不是仅扫描硬盘的前半部. 可以认为测试的有效性因所要求的测试的百分比大小而受其影响.此属性值的允许范围是从 0 到 100. \n此属性不一定对所有测试都适用. 如果在一项测试中可设置此属性, 则应在 DiagnosticTest 的 \"特性\" 阵列中输入值 7 (\"Supports PercentOfTestCoverage\").") : Amended ToSubclass] uint8 PercentOfTestCoverage;
};
[Description("这是一个将诊断测试结果与被测试的 ManagedSystemElement 联系起来的关联类.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticResultForMSE
{
[Key,Description("诊断结果.") : Amended ToSubclass] CIM_DiagnosticResult Ref Result;
[Key,Description("诊断结果应用于的 ManagedSystemElement.") : Amended ToSubclass] CIM_ManagedSystemElement Ref SystemElement;
};
[Description("这是一个将测试结果与测试本身联系起来的关联类.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticResultForTest
{
[Key,Description("结果对象.") : Amended ToSubclass] CIM_DiagnosticResult Ref DiagnosticResult;
[Key,Description("生成该结果对象的测试.") : Amended ToSubclass] CIM_DiagnosticTest Ref DiagnosticTest;
};
[Description("这是将一个 DiagnosticTest 与一个 ManagedSystemElement 联系起来的关联类.要'诊断'一个特定 Element 的客户可查询该 Element 的此关联类以确定可用的测试.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticTestForMSE : CIM_ProvidesServiceToElement
{
[Key,Description("可针对 ManagedSystemElement 运行的测试.") : Amended ToSubclass] CIM_DiagnosticTest Ref Antecedent;
[Key,Description("可测试的 ManagedSystemElement.") : Amended ToSubclass] CIM_ManagedSystemElement Ref Dependent;
[Units("秒") : Amended ToSubclass,Description("对 ManagedSystemElement 进行 参考性 DiagnosticTest 测试所需的的估计秒钟数. 由于执行时间因 \"元素\" 而各有所异, 此属性位于处在两个实体之间的关联上。同时它还由 DiagnosticResult 捕获(位于 EstimatedTimeOfPerforming 属性中).\nCIM 客户可以通过将此值和 DiagnosticResult 中的值进行比较来了解他们的设置对测试执行的影响.") : Amended ToSubclass] uint32 EstimatedTimeOfPerforming;
[Description("如果在此对象中参照的 DiagnosticTest 可针对多个 SystemElements 同时运行,但是对被参照的 ManagedSystemElement 一次只能运行一个,则此布尔值设为 TRUE.或者,如果不论被测试的 SystemElements,测试都不能同时运行,则应在 DiagnosticTest.Characteristics 中设置更通用的\"是唯一的\"枚举值(2).") : Amended ToSubclass] boolean IsExclusiveForMSE;
};
[Description("这是一个标识由较低级别的 Tests 组成的 DiagnosticTest 的关联类.此时,标识为 GroupComponent 参照的 Test (即较高级别的测试)将在 DiagnosticTest.Characteristics 中指定\"是测试包\"枚举值.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticTestInPackage : CIM_Component
{
[Key,Description("作为测试包中的所有测试之容器的 DiagnosticTest 对象.") : Amended ToSubclass] CIM_DiagnosticTest Ref GroupComponent;
[Key,Description("测试包中的元素之一的DiagnosticTest 对象.") : Amended ToSubclass] CIM_DiagnosticTest Ref PartComponent;
};
[Description("这是将一个 DiagnosticResult 标识为由较低级别的 Results 组成的关联类.此时,标识为 PackageResult 参照的 Results(即较高级别的结果)会将其 IsPackage 属性设为 TRUE.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticResultInPackage
{
[Key,Description("作为测试包中的所有测试之容器的 DiagnosticResult 对象.") : Amended ToSubclass] CIM_DiagnosticResult Ref PackageResult;
[Key,Description("测试包中的元素之一的 DiagnosticResult 对象。") : Amended ToSubclass] CIM_DiagnosticResult Ref Result;
};
[Description("这是一个将 DiagnosticTest 与提供此测试的 SoftwareElements 联系起来的关联类.SoftwareElement 描述卖方/版本信息及其他部署数据.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticTestSoftware : CIM_Dependency
{
[Key,Description("卖方/版本及其他有关作为 DiagnosticTest 运行的软件的信息.") : Amended ToSubclass] CIM_SoftwareElement Ref Antecedent;
[Key,Description("其软件被描述的 DiagnosticTest.") : Amended ToSubclass] CIM_DiagnosticTest Ref Dependent;
};
[Description("这是一个将测试设置与诊断测试联系起来的关联类.") : Amended ToSubclass,AMENDMENT, LOCALE(0x804)]
class CIM_DiagnosticSettingForTest : CIM_ElementSetting
{
[Key,Description("可使用 Setting 对象的 Test.") : Amended ToSubclass] CIM_DiagnosticTest Ref Element;
[Key,Description("可应用于 DiagnosticTest 之执行的 Setting.") : Amended ToSubclass] CIM_DiagnosticSetting Ref Setting;
};