设计 (MOF) 类托管对象格式

WMI 提供程序包含托管对象格式 (MOF) 文件和 DLL 文件。 MOF 文件定义提供程序实现为其提供数据的类。

MOF 类定义由 mofcomp.exe 实用工具编译,并存储在 WMI 存储库中(也称为通用信息模型 (CIM) 存储库)。 创建类的常见方法是通过 用于 WMI 的 COM API的方法。

备注

若要确保在 WMI 发生故障和重新启动时将托管对象的所有 WMI 类定义还原到 wmi 存储库,请在 MOF 文件中使用 # pragma 自动恢复预处理器指令。

本主题中讨论了以下部分:

定义要管理的对象

确定要管理的企业部分后,定义要管理的对象。 定义必须包含所需的数据,并允许您准确实现相关的业务规则。 您可以在粒度级别定义对象,但最好是在定义中包含的详细信息级别和提供足够详细信息以使其有用的需求。 此过程初期的快捷方式可以节省时间,但将来可能会导致更多的工作。

分布式管理任务组 (DMTF) 网站中的 CIM 教程包含了有关设计过程的极佳信息。 有关详细信息,请参阅 www.dmtf.org

在开发和实现架构设计时,请考虑以下因素:

  • 限定符

    限定符提供有关如何描述类、对象、属性、方法和参数的信息;它们将应用于类和属性定义。 在 MOF 代码中,限定符括在括号中,可能包括 [ 密钥 ] 或 [ 关联 ] 。 有关详细信息,请参阅 添加限定符WMI 限定符

  • 命名空间

    命名空间是对类和对象进行分组并控制范围和可见性的逻辑单元。 通常,命名空间包含一组表示特定环境中的托管对象的类和对象。 有关详细信息,请参阅 在 WMI 内创建层次结构

  • Object

    建模对象可以是架构的物理或逻辑元素。 例如,可以对物理磁盘驱动器(如硬盘驱动器)或逻辑磁盘(可以是物理磁盘上的分区)建模。 一种设计,它使用类对物理磁盘驱动器建模,然后将此类扩展为对逻辑磁盘进行建模比尝试为每种类型的磁盘创建单独类的扩展。

  • 数据

    数据可以是动态的或静态的。 如果数据是动态的,则必须为其创建类提供程序。

    若要使用户能够修改数据,必须通过使用用户调用的方法来确定属性是直接可写还是只能修改。

定义属性或方法

通常,WMI 类属性类似于 c + + 类中的属性。 如果代码为数据段实现的唯一操作是获取值或设置值,则应将数据定义为 WMI 类的属性。

WMI 方法通常会执行更改托管对象的状态的操作。 例如,如果操作是启用或禁用硬件对象的操作,则方法可能优于创建读/写属性。 您还可以决定创建用于显示硬件状态的属性。

创建类或实例时,可以包含注释。 使用此方法可以记录类或说明编程技术。 有关详细信息,请参阅 创建注释。 此外,还可以添加数据以限定数据对象的用途。 有关详细信息,请参阅 添加限定符

相互关联对象

可以通过两种方法使对象相互关联:创建单独的对象以及关联对象的关联对象,或将一个对象嵌入另一个对象。 CIM 不支持嵌入的对象,因此必须使用第一种方法。 但是,WMI 支持嵌入的对象,因此请使用任一方法来表示对象之间的关系。 可在 Win32 类中找到嵌入对象的示例。 例如, win32 _ SecurityDescriptor 具有嵌入的对象 win32 _ ACE,该对象有另一个嵌入对象,即 win32 _ 受信者

确定如何表示对象之间的关系时,请考虑以下事项:

开发 WMI 提供程序

向 WMI 提供数据

MOF 数据类型