Общие сведения о WMI для драйверов KMDF

[Применяется только к KMDF]

Kernel-Mode Driver Framework поддерживает драйверы, предоставляющие сведения для инструментария управления Windows (WMI). Такие драйверы называются поставщиками данных WMI , так как они предоставляют данные клиентам WMI, которые являются приложениями, зарегистрированным для получения сведений из WMI.

Поставщики данных WMI поддерживают блоки данных WMI, которые могут представлять один или несколько из следующих:

  • Элементы данных, которые содержат данные, относящиеся к конкретному устройству, которые драйвер отправляет клиенту WMI или получает из них.

  • Методы (функции), которые драйвер выполняет от имени клиента WMI.

  • События , которые драйвер отправляет клиентам WMI, зарегистрированным для получения уведомлений о событиях, относящихся к устройству.

Блоки данных WMI указываются как классы WMI в MOF-файлах. Каждый блок данных WMI идентифицируется с помощью GUID.

Все драйверы должны поддерживать все стандартные блоки данных WMI, определяемые WMI для класса устройств. Эти блоки данных WMI определяются в Wmicore.mof.

Драйвер также может поддерживать блоки данных WMI, определенные в MOF-файле. Сведения о том, как определять и публиковать настраиваемые блоки данных WMI, см. в следующих разделах:

Объекты WMI платформы и функции обратного вызова

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

EvtWmiProviderFunctionControl
Включает и отключает поддержку драйвера для сбора данных WMI и отправки событий WMI.

EvtWmiInstanceQueryInstance
Доставляет данные экземпляра поставщика WMI клиенту WMI.

EvtWmiInstanceSetInstance и EvtWmiInstanceSetItem
Задайте для сведений в блоке данных драйвера значения, предоставленные клиентом.

EvtWmiInstanceExecuteMethod
Выполняет предоставленный драйвером метод по запросу клиента.

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

Примеры драйверов FIREFLY, PCIDRV и Тостер являются поставщиками данных WMI.