Inicjowanie dostawcy
Jednym z pierwszych zadań, które należy wykonać dla dostawcy, jest proces inicjowania, który obejmuje wszystkie zadania, które dostawca musi wykonać, aby umożliwić mu wysyłanie i odbieranie informacji z usługi WMI, kontrolowanie obiektu zarządzanego i wykonywanie innych zadań. Każdy typ dostawcy ma inny zestaw zadań, które musi wykonać i ma towarzyszący zestaw unikatowych interfejsów.
Jednak wszyscy dostawcy inicjują się poprzez interfejs IWbemProviderInit i informują usługę WMI o stanie ich inicjalizacji za pośrednictwem interfejsu IWbemProviderInitSink.
Poniższa procedura opisuje sposób inicjowania dostawcy.
Aby zainicjować dostawcę
Zaimplementuj IWbemProviderInit::Initialize dla dostawcy.
Gdy WMI stwierdzi, że klient wymaga usług dostawcy, ładuje dostawcę, wywołując metodę IWbemProviderInit::Initialize.
Zaimplementuj wszystkie interfejsy unikatowe dla twojego typu dostawcy.
Poinformuj usługę WMI, że twój dostawca ukończył inicjalizację, wywołując IWbemProviderInitSink::SetStatus.
Wszystkie implementacje IWbemProviderInit::Initialize muszą wywołać metodę IWbemProviderInitSink::SetStatus, aby zgłosić stan inicjowania do usługi WMI. Metoda SetStatus umożliwia usłudze WMI określenie, czy dostawca jest gotowy do odbierania żądań i typu żądań, które dostawca jest gotowy do odbierania.
W poniższej procedurze opisano sposób zgłaszania pomyślnego inicjowania.
Aby zgłosić pomyślne zainicjowanie
Ustaw parametr IStatusSetStatus na WBEM_S_INITIALIZED.
Zwracając WBEM_S_INITIALIZED, dostawca wskazuje gotowość do obsługi żądań od aplikacji, WMI i innych dostawców. Po otrzymaniu WBEM_S_INITIALIZED usługa WMI wykonuje wywołanie metody IWbemProviderInit::QueryInterface na dostawcy. To zapytanie pobiera wskaźnik do podstawowego interfejsu dostawcy.
Poniższa procedura opisuje sposób zgłaszania błędu podczas inicjowania.
Aby zgłosić błąd podczas inicjowania
Ustaw parametr IStatus dla SetStatus na WBEM_E_FAILED. Dostawcy widoków WMI, którzy zwracają WBEM_E_FAILED, są uważani za niefunkcjonalnych.
WMI zwalnia wskaźnik IWbemProviderInit, gdy uzyska wskaźnik do podstawowego interfejsu dostawcy lub gdy inicjalizacja się nie powiedzie.
Tematy pokrewne