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

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

Если вы хотите предоставить данные через WMI в другие приложения, можно создать неуправляемый поставщик кода, написав COM-сервер или с помощью мастеров WMI ATL в Visual Studio. Вы можете написать поставщик управляемого кода с помощью инструментария WMI в платформа .NET Framework. В разделах этого раздела описывается процесс написания неуправляемого поставщика COM.

Примечание

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

Поставщик состоит из классов, определенных в схеме MOF, и DLL-файла, который выполняет функции поставщика. Например, MOF-файл, определяющий классы поставщика Win32, — это CIMWin32.mof, а библиотека DLL — CIMWin32.dll. Оба они находятся в папке %windir%\System32\Wbem.

Схема MOF для поставщика может содержать несколько типов поставщиков. Например, поставщик журнала событий имеет типы экземпляров, методов и поставщиков событий в одном MOF-файле с именем Ntevt.mof. Рекомендуется собрать все классы и схему регистрации для связанных поставщиков в одном файле, а не создавать по одному файлу для каждого класса.

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

В следующей таблице перечислены основные задачи, которые создают поставщика.

Задача Описание
Проектирование классов формата управляемых объектов (MOF) Разработайте модель для сущностей, которыми вы хотите управлять с помощью инструментария WMI, и создайте MOF-файл для описания схемы.
Передача данных в WMI путем записи поставщика Создайте самый простой поставщик, который связан с WMI.
Включение поставщика в приложение Включите поставщик в качестве компонента в приложение, если оно не выполняется все время.
Регистрация поставщика Зарегистрируйте поставщик с помощью COM и WMI.
Инициализация поставщика Реализуйте интерфейсы IWbemProviderInit и IWbemProviderInitSink .
Вызовы WMI Вызов интерфейсов WMI от поставщика.
Олицетворение клиента Настройка безопасности для доступа к клиентскому приложению.
Обновление поставщика По мере необходимости улучшайте поставщика.
Выгрузка поставщика Удалите поставщик из памяти во время завершения работы или при бездействии поставщика.
Поставщики отладки и классы конфигурации поставщика и устранения неполадок Отладка поставщика с помощью средств, предоставляемых WMI.
Получение и предоставление данных на 64-разрядном компьютере Оцените, нужен ли поставщик совместимости 32-разрядных приложений или может ли 64-разрядный поставщик предоставлять данные обоим клиентам.

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