Escrever um provedor de consumidores de eventos

Um provedor de consumidores de eventos é um componente da arquitetura de consumidores permanente responsável por determinar qual consumidor permanente manipulará um evento específico. Você deve criar um provedor de consumidores de eventos junto com seus consumidores de eventos permanentes para direcionar corretamente os eventos provenientes do WMI.

Um provedor de consumidores de eventos vincula um provedor de eventos a uma lista de classes de consumidores. As instâncias dessas classes de consumidores recebem eventos desse provedor. O WMI identifica a qual provedor de consumidores os eventos são entregues com base na instância __EventConsumerProviderRegistration, que associa a instância do provedor de consumidores __Win32Provider a uma classe de consumidor lógico. Os usuários criam instâncias da classe de consumidores como parte de uma assinatura permanente. Se o provedor de eventos não estiver em execução quando ocorrer um evento, o WMI iniciará o provedor quando precisar entregar eventos.

O procedimento a seguir descreve como implementar um provedor de consumidores de eventos.

Para implementar um provedor de consumidores de eventos

  1. Projete classes de consumidores no MOF (Managed Object Format) e registre-as no WMI. Para obter mais informações, confira Projetar classes MOF (Managed Object Format).

    Os provedores da classe registram-se no WMI criando uma instância de __Win32Provider e uma classe __EventConsumerProviderRegistration. Para obter mais informações, consulte Registrar um provedor de consumidores de eventos.

  2. Implemente a interface IWbemProviderInit em seu provedor.

    O WMI usa IWbemProviderInit para carregar e inicializar um provedor. Para obter mais informações, consulte Inicializar um provedor.

    Observação

    Os provedores de consumidores de eventos são fortemente encorajados a utilizar o modelo de multithreading "Both".

     

  3. Implemente a interface IWbemEventConsumerProvider para seu provedor.

    A interface IWbemEventConsumerProvider é a interface principal para um provedor de consumidores de eventos.

  4. Forneça um ou mais consumidores físicos para receber as mensagens de eventos do WMI.

    Um consumidor físico é um objeto COM que representa um consumidor de eventos permanente. Todos os consumidores físicos devem implementar a interface IWbemUnboundObjectSink. Para obter mais informações, consulte Implementar um consumidor físico.