Schreiben eines Ereignisconsumeranbieters

Ein Ereignisconsumeranbieter ist eine Komponente der permanenten Consumerarchitektur, die festlegt, welcher permanente Ereignisconsumer ein bestimmtes Ereignis verarbeitet. Sie sollten einen Ereignisconsumeranbieter zusammen mit Ihren permanenten Ereignisconsumern erstellen, um Ereignisse ordnungsgemäß von WMI weiterzuleiten.

Ein Ereignisconsumeranbieter verknüpft einen Ereignisanbieter mit einer Liste von Consumerklassen. Instanzen dieser Consumerklassen empfangen dann Ereignisse von diesem Anbieter. WMI identifiziert anhand der __EventConsumerProviderRegistration-Instanz, an welchen Consumeranbieter die Ereignisse übermittelt werden, wobei die __Win32Provider-Instanz des Consumeranbieters einer logischen Consumerklasse zugeordnet wird. Benutzer erstellen Instanzen der Consumerklasse als Teil eines permanenten Abonnements. Wenn der Ereignisanbieter nicht ausgeführt wird, wenn ein Ereignis auftritt, startet WMI den Anbieter, wenn Ereignisse übermittelt werden müssen.

Im folgenden Verfahren wird beschrieben, wie ein Ereignisconsumeranbieter implementiert wird.

So implementieren Sie einen Ereignisconsumeranbieter

  1. Entwerfen Sie Consumerklassen im Managed Object Format (MOF) und registrieren Sie sie bei WMI. Weitere Informationen finden Sie unter Entwerfen von MOF-Klassen (Managed Object Format).

    Klassenanbieter registrieren sich bei WMI, indem sie eine __Win32Provider-Instanz und eine __EventConsumerProviderRegistration-Klasse erstellen. Weitere Informationen finden Sie unter Registrieren eines Ereignisconsumeranbieters.

  2. Implementieren Sie die IWbemProviderInit-Schnittstelle für Ihren Anbieter.

    WMI verwendet IWbemProviderInit zum Laden und Initialisieren eines Anbieters. Weitere Informationen finden Sie unter Initialisieren eines Anbieters.

    Hinweis

    Ereignisconsumeranbietern wird dringend empfohlen, das Multithreading-Modell „Both“ zu verwenden.

     

  3. Implementieren Sie die IWbemEventConsumerProvider-Schnittstelle für Ihren Anbieter.

    Die IWbemEventConsumerProvider-Schnittstelle ist die primäre Schnittstelle für einen Ereignisconsumeranbieter.

  4. Geben Sie mindestens einen physischen Consumer an, um die Ereignisnachrichten von WMI zu empfangen.

    Ein physischer Consumer ist ein COM-Objekt, das einen permanenten Ereignisconsumer darstellt. Alle physischen Consumer müssen die IWbemUnboundObjectSink-Schnittstelle implementieren. Weitere Informationen finden Sie unter Implementieren eines physischen Consumers.