Поделиться через


Общие сведения о 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.