Scrittura di un provider di consumer di eventi

Un provider di consumer di eventi è un componente dell'architettura consumer permanente che determina quale consumer di eventi permanente gestisce un determinato evento. È necessario creare un provider di consumer di eventi insieme ai consumer di eventi permanenti per instradare correttamente gli eventi da WMI.

Un provider di consumer di eventi collega un provider di eventi con un elenco di classi consumer. Le istanze di queste classi consumer ricevono quindi eventi da tale provider. WMI identifica il provider consumer a cui vengono recapitati gli eventi, in base all'istanza di __EventConsumerProviderRegistration , che associa il provider di consumer __Win32Provider'istanza a una classe consumer logica. Gli utenti creano istanze della classe consumer come parte di una sottoscrizione permanente. Se il provider di eventi non è in esecuzione quando si verifica un evento, WMI avvia il provider quando deve recapitare gli eventi.

La procedura seguente descrive come implementare un provider di consumer di eventi.

Per implementare un provider di consumer di eventi

  1. Progettare classi consumer in Managed Object Format (MOF) e registrarle con WMI. Per altre informazioni, vedere Progettazione di classi MOF (Managed Object Format).

    I provider di classi si registrano con WMI creando un'istanza di __Win32Provider e una classe __EventConsumerProviderRegistration . Per altre informazioni, vedere Registrazione di un provider di consumer di eventi.

  2. Implementare l'interfaccia IWbemProviderInit per il provider.

    WMI usa IWbemProviderInit per caricare e inizializzare un provider. Per altre informazioni, vedere Inizializzazione di un provider.

    Nota

    I provider di consumer di eventi sono fortemente invitati a usare il modello multithreading "Both".

     

  3. Implementare l'interfaccia IWbemEventConsumerProvider per il provider.

    L'interfaccia IWbemEventConsumerProvider è l'interfaccia principale per un provider di consumer di eventi.

  4. Fornire uno o più consumer fisici per ricevere i messaggi di evento da WMI.

    Un consumer fisico è un oggetto COM che rappresenta un consumer di eventi permanente. Tutti i consumer fisici devono implementare l'interfaccia IWbemUnboundObjectSink . Per altre informazioni, vedere Implementazione di un consumer fisico.