Udostępnij za pośrednictwem


Pisanie dostawcy klasy

Dostawca klas zarządza klasą lub serią klas dla usługi WMI. Dostawca klas może być wypychany lub ściągany; oznacza to, że może przechowywać własne dane lub zezwalać usłudze WMI na przechowywanie danych w usłudze zarządzania windows. Mimo że dostawca klas jest zainstalowany na określonej maszynie, może zmienić definicje klas w całym przedsiębiorstwie. W związku z tym większość deweloperów często nie tworzy dostawców klas.

Przed utworzeniem dostawcy klas sprawdź, czy obsługiwane klasy muszą być generowane dynamicznie. Lista klas jest w większości przypadków powoli zmieniająca się i skończona. W takim przypadku nie należy tworzyć dostawcy klas. Zamiast tego możesz umieścić definicje klas w repozytorium usługi WMI przy użyciu interfejsu API usługi WMI lub pliku MOF.

Poniższa procedura opisuje sposób zaimplementowania dostawcy klasy.

Aby zaimplementować dostawcę klasy

  1. Ustal, czy dostawca jest dostawcą typu „push” czy „pull”.

    Dostawca pobierający dostarcza dane dynamicznie w odpowiedzi na żądanie aplikacji, podczas gdy dostawca wysyłający przechowuje swoje dane trwale w repozytorium WMI. Aby uzyskać więcej informacji, zobacz Określanie stanu wypychania lub ściągania.

  2. Zaprojektuj i zarejestruj swojego dostawcę klasy w WMI.

    Dostawcy klas rejestrują się w usłudze WMI, tworząc zarówno wystąpienie __Win32Provider, jak i wystąpienie __ClassProviderRegistration. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy klasy.

  3. Zaimplementuj interfejs IWbemProviderInit dla swojego dostawcy.

    Usługa WMI używa IWbemProviderInit do ładowania i inicjowania dostawcy. Jeśli projektujesz dostawcę wypychania, IWbemProviderInit jest jedynym interfejsem, który zaimplementujesz. Aby uzyskać więcej informacji, zobacz Inicjacja dostawcy.

    Notatka

    Dostawcy klas są zdecydowanie zachęcani do korzystania z modelu wielowątkowego "Both".

     

  4. Dodaj dodatkowy kod niezbędny dla dostawcy.

    Podczas projektowania dostawcy najprawdopodobniej będzie trzeba wywołać interfejsy WMI. Aby uzyskać więcej informacji, zobacz Wywoływanie Metody i Utrzymywanie Poziomów Zabezpieczeń w Dostawcy.

    Podczas pobierania informacji dla klienta może być konieczne uzyskanie dostępu do poziomów zabezpieczeń dla tego klienta. Aby uzyskać więcej informacji, zobacz Personifikacja klienta.

  5. Zaimplementuj interfejs IWbemServices dla twojego dostawcy.

    Interfejs IWbemServices jest podstawowym interfejsem dla dostawcy klas typu pull. Aby uzyskać więcej informacji, zobacz Implementowanie głównego interfejsu dla dostawcy klas.

  6. Zastąp istniejącego dostawcę nowym kodem.

    Nie musisz wykonywać tego kroku, jeśli nie masz istniejącego dostawcy do przeniesienia. Aby uzyskać więcej informacji, zobacz Aktualizowanie dostawcy.