Написание поставщика экземпляров

Поставщик экземпляров предоставляет экземпляры одного или нескольких заданных классов. Например, поставщик экземпляров может предоставлять сведения о ЦП или другом типе оборудования. Поскольку объекты, управляемые поставщиком экземпляров, как правило, изменяются на регулярной основе, все поставщики экземпляров считаются поставщиками по запросу; то есть поставщик, который динамически извлекает сведения об управляемом объекте всякий раз, когда инструментарий WMI запрашивает эти сведения. Имя происходит из-за того, что WMI "извлекает" информацию от поставщика от имени клиентского запроса. Используя технологию извлечения, поставщик экземпляров может поддерживать извлечение, перечисление, изменение, удаление и обработку запросов определенного экземпляра.

Высокопроизводительные поставщики могут повысить эффективность поставщика экземпляров или программно получить доступ к данным, отображаемым в системном мониторе. Дополнительные сведения см. в статье Преобразование поставщика экземпляров в поставщик High-Performance.

В следующей процедуре описывается запись поставщика экземпляра.

Запись поставщика экземпляра

  1. Зарегистрируйте поставщика с помощью инструментария WMI.

    Поставщики экземпляров регистрируются с помощью WMI путем создания экземпляра __Win32Provider и класса __InstanceProviderRegistration .

  2. Инициализируйте поставщика.

    WMI использует IWbemProviderInit для загрузки и инициализации поставщика. Эта задача является общей для всех поставщиков.

    Примечание

    Поставщикам экземпляров настоятельно рекомендуется использовать многопоточность "Оба".

     

  3. Реализуйте интерфейс IWbemServices для поставщика.

    Интерфейс IWbemServices является основным интерфейсом для поставщика экземпляров.

  4. Добавьте дополнительный код, необходимый для поставщика.

    При проектировании поставщика, скорее всего, потребуется вызвать интерфейсы WMI. Дополнительные сведения см. в разделе Вызовы WMI.

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

  5. При необходимости реализуйте высокопроизводительный интерфейс.

    Высокопроизводительный интерфейс повышает скорость, с которой поставщик может реагировать на запросы из WMI.

  6. При необходимости реализуйте поддержку частичных обновлений экземпляров.

    Как следует из названия, частичное обновление экземпляра — это метод, используемый для обновления только части экземпляра. Дополнительные сведения о вызове частичного экземпляра из клиента см. в разделах Обновление части экземпляра и Получение части экземпляра WMI.

  7. Замените существующий поставщик новым кодом.

    Этот шаг не требуется выполнять, если у вас нет поставщика для копирования. Дополнительные сведения см. в разделе Обновление поставщика.