注册为 WMI 数据提供程序

支持 WMI 的驱动程序必须注册为 WMI 数据提供程序,才能使其数据和事件块可供 WMI 客户端使用。 驱动程序通常在设备初始化到驱动程序可以处理 WMI IRP 的点后,在启动其设备时向 WMI 注册。 在注册过程中,驱动程序向 WMI 传递指向其设备对象的指针,以及有关它所支持的数据和事件块的信息。

驱动程序分两个阶段向 WMI 注册:

  1. 驱动程序使用操作WMIREG_ACTION_REGISTER调用 IoWMIRegistrationControl ,以及指向传递给驱动程序 AddDevice 例程的设备对象的指针。

  2. 驱动程序处理 WMI 为响应驱动程序的 IoWMIRegistrationControl 调用而发送的IRP_MN_REGINFO或IRP_MN_REGINFO_EX请求。 IRP 的 Parameters.WMI.DataPath 成员设置为 WMIREGISTER, Parameters.WMI.ProviderId 设置为驱动程序的设备对象指针。 驱动程序通过使用 WMI 库注册块中所述的 WMI 库,或者按照处理IRP_MN_REGINFO和IRP_MN_REGINFO_EX注册块中所述处理IRP_MN_REGINFO或IRP_MN_REGINFO_EX请求,为 WMI 提供有关其数据和事件块的注册信息。