Создание поставщика потребителя событий

Поставщик потребителя события — это компонент архитектуры постоянного потребителя, который определяет, какой постоянный потребитель события обрабатывает данное событие. Необходимо создать поставщик потребителей событий вместе с постоянными потребителями событий для правильной маршрутизации событий из WMI.

Поставщик потребителя событий связывает поставщика событий со списком классов потребителей. Затем экземпляры этих классов потребителей получают события от этого поставщика. WMI определяет, к какому поставщику-получателю доставляются события на основе экземпляра __EventConsumerProviderRegistration , который связывает поставщик-потребитель __Win32Provider экземпляре с логическим классом потребителя. Пользователи создают экземпляры класса потребителей в рамках постоянной подписки. Если поставщик событий не выполняется при возникновении события, WMI запускает поставщик, когда ему нужно доставить события.

В следующей процедуре описывается реализация поставщика потребителя событий.

Реализация поставщика потребителя событий

  1. Проектируйте классы потребителей в формате управляемых объектов (MOF) и регистрируйте их с помощью WMI. Дополнительные сведения см. в разделе Designing Managed Object Format (MOF) Classes.

    Поставщики классов регистрируются с помощью WMI путем создания экземпляра __Win32Provider и класса __EventConsumerProviderRegistration . Дополнительные сведения см. в разделе Регистрация поставщика потребителя событий.

  2. Реализуйте интерфейс IWbemProviderInit для поставщика.

    WMI использует IWbemProviderInit для загрузки и инициализации поставщика. Дополнительные сведения см. в разделе Инициализация поставщика.

    Примечание

    Поставщикам потребителей событий настоятельно рекомендуется использовать модель многопоточности "Оба".

     

  3. Реализуйте интерфейс IWbemEventConsumerProvider для поставщика.

    Интерфейс IWbemEventConsumerProvider является основным интерфейсом для поставщика потребителя событий.

  4. Укажите одного или нескольких физических потребителей для получения сообщений о событиях из WMI.

    Физический потребитель — это COM-объект, представляющий постоянный потребитель событий. Все физические потребители должны реализовать интерфейс IWbemUnboundObjectSink . Дополнительные сведения см. в разделе Реализация физического потребителя.