Udostępnij za pośrednictwem


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ę

  1. Zaimplementuj IWbemProviderInit::Initialize dla dostawcy.

    Gdy WMI stwierdzi, że klient wymaga usług dostawcy, ładuje dostawcę, wywołując metodę IWbemProviderInit::Initialize.

  2. Zaimplementuj wszystkie interfejsy unikatowe dla twojego typu dostawcy.

  3. 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.

Tworzenie dostawcy WMI

ustawienie Namepace Security Descriptors

zabezpieczanie dostawcy