Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Имена классов 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, который является абстрактным базовым классом, поэтому абстрактный квалификатор нельзя использовать в определяемом драйвером базовом классе для блоков событий. Вместо этого наследуйте базовый класс nonabstract из WmiEvent, а затем наследуйте отдельные классы событий из этого базового класса. Рассмотрим пример.
//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 см. в пакете SDK для Microsoft Windows.