编写事件使用者提供程序

事件使用者提供程序是永久使用者体系结构的一个组件,用于确定哪个永久事件使用者处理给定事件。 你应当随永久事件使用者一起创建事件使用者提供程序,以便从 WMI 正确路由事件。

事件使用者提供程序将事件提供程序与使用者类列表链接起来。 然后,这些使用者类的实例从该提供程序接收事件。 WMI 根据 __EventConsumerProviderRegistration 实例(该实例将使用者提供程序 __Win32Provider 实例与逻辑使用者类相关联)识别事件被提交到哪个使用者提供程序。 用户将使用者类的实例创建为永久订阅的一部分。 如果某个事件发生时事件提供程序未在运行,则 WMI 在需要提交该事件时会启动该提供程序。

以下过程介绍了如何实现事件使用者提供程序。

实现事件使用者提供程序

  1. 以托管对象格式 (MOF) 设计使用者类,并将其注册到 WMI。 有关详细信息,请参阅设计托管对象格式 (MOF) 类

    类提供程序通过创建 __Win32Provider 实例和 __EventConsumerProviderRegistration 类向 WMI 进行注册。 有关详细信息,请参阅注册事件使用者提供程序

  2. 为提供程序实现 IWbemProviderInit 接口。

    WMI 使用 IWbemProviderInit 加载和初始化提供程序。 有关详细信息,请参阅初始化提供程序

    注意

    强烈建议事件使用者提供程序使用多线程模型“Both”。

     

  3. 为提供程序实现 IWbemEventConsumerProvider 接口。

    IWbemEventConsumerProvider 接口是事件使用者提供程序的主接口。

  4. 请提供一个或多个物理使用者以接收来自 WMI 的事件消息。

    物理使用者是表示永久事件使用者的 COM 对象。 所有物理使用者都必须实现 IWbemUnboundObjectSink 接口。 有关详细信息,请参阅实现物理使用者