Разработка классов MOF-файл (MOF)

Поставщик WMI состоит из файла MOF-файл (MOF) и DLL-файла. MOF-файл определяет классы, для которых реализация поставщика предоставляет данные.

Определения классов MOF компилируются программой mofcomp и хранятся в репозитории WMI, также известном как репозиторий модель CIM (CIM). Менее распространенный способ создания классов заключается в использовании методов API COM для WMI.

Примечание

Чтобы гарантировать, что все определения классов WMI для управляемых объектов будут восстановлены в репозитории WMI в случае сбоя и перезапуска WMI, используйте инструкцию препроцессора # pragma автовосстановления в MOF-файле.

В этом разделе обсуждаются следующие разделы:

Определение объектов для управления

Определив часть организации для управления, определите объекты для управления. Определение должно включать необходимые данные и позволяет точно реализовать соответствующие бизнес-правила. Объекты можно определять на детализированном уровне, но лучше выбрать уровень детализации, содержащийся в определении, и необходимость предоставить достаточно подробное описание. Ярлыки на ранних этапах процесса могут сэкономить время, но в будущем это может привести к большей работе.

В руководстве по CIM на веб-сайте распределенной задачи управления (DMTF) содержится отличная информация о процессе разработки. Дополнительные сведения см. в разделе www.DMTF.org.

При разработке и реализации структуры схемы учитывайте следующие факторы.

  • Квалификаторы

    Квалификаторы предоставляют сведения о том, как описывать классы, объекты, свойства, методы и параметры. они применяются к определениям классов и свойств. В коде MOF квалификаторы заключаются в квадратные скобки и могут включать [ ключ ] или [ связь ] . Дополнительные сведения см. в разделе Добавление квалификаторов квалификатора и WMI.

  • Пространство имен

    Пространство имен — это логическая единица для группирования классов и объектов, управления областью и видимостью. Как правило, пространство имен содержит набор классов и объектов, представляющих управляемые объекты в определенной среде. Дополнительные сведения см. в разделе Создание иерархий в WMI.

  • Объект

    Смоделированный объект может быть физическим или логическим элементом схемы. Например, можно смоделировать физический диск, например жесткий диск, или логический диск, который может быть разделом на физическом диске. Проект, использующий класс для моделирования физического диска, а затем расширяет этот класс для моделирования логического диска, является более расширяемым, чем тот, который пытается создать отдельный класс для каждого типа диска.

  • Данные

    Данные могут быть динамическими или статическими. Если данные являются динамическими, необходимо создать для него поставщик класса.

    Чтобы разрешить пользователю изменять данные, необходимо определить, нужно ли, чтобы свойство можно было напрямую записывать или изменять только с помощью метода, который вызывает пользователь.

Определение свойств или методов

Как правило, свойство класса WMI аналогично свойству в классе C++. Если единственными действиями, которые ваш код реализует для фрагмента данных, является получение значения или установка значения, то данные должны быть определены как свойство класса WMI.

Метод WMI обычно выполняет действие, которое изменяет состояние управляемого объекта. Например, если действием является включение или отключение операции аппаратного объекта, то, вероятно, предпочтительнее создать свойство для чтения и записи. Вы также можете создать свойство, отображающее состояние оборудования.

При создании класса или экземпляра можно включить комментарии. Используйте этот метод для документирования класса или объяснения методов программирования. Дополнительные сведения см. в разделе Создание комментария. Кроме того, можно добавить данные, чтобы уточнить назначение объекта данных. Дополнительные сведения см. в разделе Добавление квалификатора.

Связывание объектов друг с другом

Существует два способа связать объекты друг с другом: путем создания отдельных объектов и объекта связи, связывающего их, или путем внедрения одного объекта в другой. CIM не поддерживает внедренные объекты, поэтому для обеспечения совместимости с CIM необходимо использовать первый метод. Однако Инструментарий WMI поддерживает внедренные объекты, поэтому для представления связи между объектами используется любой из методов. Примеры внедренных объектов можно найти в классах Win32. Например, в Win32 _ SecurityDescriptor есть внедренный объект _ ACE Win32, который имеет другой внедренный объект — _ доверенное лицо Win32.

При принятии решения о том, как представлять отношения между объектами, учитывайте следующее.

Разработка поставщика WMI

Предоставление данных инструментарию WMI

Типы данных MOF