Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Одной из первых задач, которые необходимо закодировать для поставщика, является процесс инициализации, который охватывает все задачи, которые поставщик должен выполнять, что позволяет отправлять и получать информацию из WMI, управлять управляемым объектом и выполнять другие задачи. Каждый тип поставщика имеет другой набор задач, которые он должен выполнять и имеет сопутствующий набор уникальных интерфейсов.
Однако все поставщики инициализируются через интерфейс IWbemProviderInit и информируют WMI о состоянии инициализации через интерфейс IWbemProviderInitSink.
В следующей процедуре описывается, как инициализировать поставщика.
Инициализация поставщика
Реализуйте IWbemProviderInit::Initialize для вашего поставщика.
Когда WMI определяет, что клиенту требуются службы поставщика, WMI загружает поставщика, вызывая метод IWbemProviderInit::Initialize.
Реализуйте все интерфейсы, уникальные для вашего типа поставщика.
Сообщите WMI, что ваш поставщик завершил инициализацию, вызвав IWbemProviderInitSink::SetStatus.
Все реализации IWbemProviderInit::Initialize должны вызывать IWbemProviderInitSink::SetStatus, чтобы сообщить о состоянии инициализации через WMI. Метод SetStatus позволяет WMI определить, готов ли поставщик получать запросы и тип запросов, которые поставщик готов к получению.
В следующей процедуре описывается, как сообщить об успешной инициализации.
Сообщите об успешной инициализации
Задайте значение WBEM_S_INITIALIZEDдля параметра IStatusSetStatus.
Возвращая WBEM_S_INITIALIZED, поставщик указывает готовность обрабатывать запросы от приложений, WMI и других поставщиков. После получения WBEM_S_INITIALIZED WMI вызывает метод IWbemProviderInit::QueryInterface в поставщике. Этот запрос извлекает указатель на первичный интерфейс поставщика.
В следующей процедуре описывается, как сообщить об ошибке во время инициализации.
Сообщить об ошибке во время инициализации
Задайте для параметра IStatusSetStatus значение WBEM_E_FAILED. Поставщики представлений WMI, возвращающие WBEM_E_FAILED как не функциональные.
WMI освобождает указатель IWbemProviderInit либо после того, как WMI получает указатель на первичный интерфейс поставщика, либо в случае неудачной инициализации.
Связанные разделы
-
Разработка поставщика WMI