WMI 类名和基类

WMI 类名不区分大小写,必须以字母开头,不能以下划线开头或结尾。 所有剩余字符必须是字母、数字或下划线。

WMI 客户端应用程序可以访问驱动程序的 WMI 类名并将其显示给用户。 描述性类名有助于使类更直观地使用。

WMI 类名在 WMI 命名空间中必须是唯一的。 因此,驱动程序的 WMI 类名不能与另一个驱动程序定义的类名重复。

为了帮助防止名称冲突,驱动程序编写器可以定义特定于驱动程序的基类,并从该基类派生驱动程序的所有 WMI 类。 类名和基类名称一起生成唯一名称的可能性更大。 例如,下面显示了串行驱动程序的数据块的抽象基类:

// Serial driver's base class for data blocks
[abstract]
class MSSerial {
}
 
// Example class definition for a data block
[
    //Class qualifiers 
]
class MSSerial_StandardSerialInformation : MSSerial 
{
    //Data items
}

特定于设备的自定义数据块应在基类名称中包含制造商、型号和驱动程序或设备的类型。 例如:

[abstract]
class Adaptec1542 {
}
 
class Adaptec1542_Bandwidth : Adaptec1542 {
    //Data items
}
 
class Adaptec1542_Speed : Adaptec1542 {
    //Data items
}

WMI 在给定的类层次结构中只允许一个抽象基类。 定义事件块的类必须派生自 WmiEvent(这是一个抽象基类),因此 抽象 限定符不能在事件块的驱动程序定义的基类中使用。 相反,从 WmiEvent 派生非abstract 基类,然后从该基类派生单个事件类。 例如:

//Serial driver's base class for event blocks
class MSSerialEvent : WmiEvent 
{
}
 
//Example class definition for an event block
[
    //Class qualifiers 
]
class MSSerial_SendEvent : MSSerialEvent 
{
    //Data items
}

有关以 MOF 格式定义基类的详细信息,请参阅Microsoft Windows SDK。