Инициализация поставщика

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

Однако все поставщики инициализируются с помощью интерфейса IWbemProviderInit и информируют WMI о состоянии инициализации через интерфейс IWbemProviderInitSink .

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

Инициализация поставщика

  1. Реализуйте IWbemProviderInit::Initialize для поставщика.

    Когда WMI определяет, что клиенту требуются службы поставщика, WMI загружает поставщик путем вызова метода IWbemProviderInit::Initialize .

  2. Реализуйте интерфейсы, уникальные для вашего типа поставщика.

  3. Сообщите WMI о завершении инициализации поставщика, вызвав IWbemProviderInitSink::SetStatus.

    Все реализации IWbemProviderInit::Initialize должны вызывать IWbemProviderInitSink::SetStatus , чтобы сообщить о состоянии инициализации в WMI. Метод SetStatus позволяет инструментарию WMI определить, готов ли поставщик к приему запросов и тип запросов, которые поставщик готов к получению.

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

Отчет об успешной инициализации

  • Задайте для параметра IStatussetStatusзначение WBEM_S_INITIALIZED.

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

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

Сообщение об ошибке во время инициализации

  • Задайте для параметра IStatussetStatusзначение WBEM_E_FAILED. Поставщики WMI, возвращающие WBEM_E_FAILED , считаются нефункциональными.

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

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

Настройка дескрипторов безопасности в среде имен

Защита поставщика