Написание поставщика класса

Поставщик классов управляет классом или рядом классов для WMI. Поставщик класса может быть push или pull; то есть он может хранить собственные данные или разрешать WMI хранить их в службе управления Windows. Хотя поставщик классов установлен на определенном компьютере, он может изменить определения классов на всем предприятии. Поэтому большинство разработчиков не часто создают поставщики классов.

Перед созданием поставщика классов убедитесь, что поддерживаемые классы действительно должны создаваться динамически. В большинстве случаев список классов медленно меняется и ограничен. В этом случае не нужно создавать поставщик классов. Вместо этого определения классов можно поместить в репозиторий WMI с помощью API WMI или MOF-файла.

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

Реализация поставщика классов

  1. Определите, является ли ваш поставщик поставщиком push-уведомлений или поставщиком по запросу.

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

  2. Проектирование и регистрация поставщика классов с помощью инструментария WMI.

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

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

    WMI использует IWbemProviderInit для загрузки и инициализации поставщика. Если вы разрабатываете поставщик push-уведомлений, IWbemProviderInit является единственным интерфейсом, который вы будете реализовывать. Дополнительные сведения см. в разделе Инициализация поставщика.

    Примечание

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

     

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

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

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

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

    Интерфейс IWbemServices является основным интерфейсом для поставщика класса извлечения. Дополнительные сведения см. в разделе Реализация основного интерфейса для поставщика классов.

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

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