Разработка поставщика 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-разрядный поставщик предоставлять данные обоим клиентам. |
В следующих разделах рассматриваются действия, необходимые для написания различных типов поставщиков.