Udostępnij za pośrednictwem


Pisanie dostawcy usług dla odbiorców zdarzeń

Dostawca odbiorców zdarzeń jest składnikiem stałej architektury konsumenta, który określa, który stały odbiorca zdarzeń obsługuje określone zdarzenie. Należy utworzyć dostawcę odbiorców zdarzeń wraz ze stałymi użytkownikami zdarzeń w celu prawidłowego kierowania zdarzeń z usługi WMI.

Dostawca odbiorców zdarzeń łączy dostawcę zdarzeń z listą klas odbiorców. Instancje tych klas konsumentów następnie odbierają zdarzenia od tego dostawcy. Usługa WMI identyfikuje dostawcę konsumenta, do którego dostarczane są zdarzenia, na podstawie wystąpienia __EventConsumerProviderRegistration, które wiąże wystąpienie dostawcy __Win32Provider z logiczną klasą konsumenta. Użytkownicy tworzą wystąpienia klasy konsumenta w ramach subskrypcji stałej. Jeśli dostawca zdarzeń nie jest uruchomiony w momencie wystąpienia zdarzenia, WMI uruchamia dostawcę, gdy musi dostarczyć zdarzenia.

Poniższa procedura opisuje, jak zaimplementować dostawcę konsumentów zdarzeń.

Aby zaimplementować dostawcę odbiorcy zdarzeń

  1. Zaprojektuj klasy konsumentów w formacie zarządzanych obiektów (MOF) i zarejestruj je w usłudze WMI. Aby uzyskać więcej informacji, zobacz Projektowanie klas formatu obiektów zarządzanych (MOF).

    Dostawcy klas rejestrują się w usłudze WMI, tworząc instancję __Win32Provider oraz klasę __EventConsumerProviderRegistration. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy zdarzeń konsumenckich.

  2. Zaimplementuj interfejs IWbemProviderInit dla swojego dostawcy.

    WMI używa IWbemProviderInit do załadowania i inicjowania dostawcy. Aby uzyskać więcej informacji, zobacz Inicjowanie usługodawcy.

    Uwaga

    Dostawcy odbiorców zdarzeń są zdecydowanie zachęcani do korzystania z modelu wielowątkowego "Oba".

     

  3. Zaimplementuj interfejs IWbemEventConsumerProvider dla swojego dostawcy.

    Interfejs IWbemEventConsumerProvider jest podstawowym interfejsem dostawcy odbiorców zdarzeń.

  4. Podaj co najmniej jednego użytkownika fizycznego, aby otrzymywać komunikaty o zdarzeniach z usługi WMI.

    Użytkownik fizyczny jest obiektem COM reprezentującym stałego konsumenta zdarzeń. Wszyscy odbiorcy fizyczni muszą zaimplementować interfejs IWbemUnboundObjectSink. Aby uzyskać więcej informacji, zobacz Implementowanie konsumenta fizycznego.