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


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

Поставщик — это объект Component Object Model (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-разрядный поставщик может предоставлять данные обоим клиентам.

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