WDM 驱动程序的 WMI 要求
处理 IRP 的驱动程序将 WMI 注册为 数据提供程序。 系统提供的存储端口驱动程序、类驱动程序和 NDIS 协议驱动程序属于此类别。 有关注册为 WMI 数据提供程序的信息,请参阅 注册为 WMI 数据提供程序。
不处理 IRP 的驱动程序应仅将 WMI 请求转发到驱动程序堆栈中下一个较低的驱动程序。 然后,下一个较低的驱动程序向 WMI 注册,并代表第一个驱动程序处理 WMI 请求。 例如,SCSI 微型端口驱动程序和 NDIS 微型端口驱动程序可以注册为 WMI 提供程序,并将 WMI 数据提供给其相应的类驱动程序。
向类或端口驱动程序提供 WMI 数据的驱动程序必须支持类或端口驱动程序定义的特定于驱动程序类型的 WMI 接口。 例如,SCSI 微型端口驱动程序必须在PORT_CONFIGURATION_INFORMATION结构中将 WmiDataProvider 设置为 TRUE,并处理来自 SCSI 端口驱动程序的SRB_FUNCTION_WMI请求。
同样,定义自定义数据块的面向连接的 NDIS 微型端口驱动程序必须支持 OID_GEN_CO_SUPPORTED_GUIDS;否则,NDIS 会将从 NDIS 通用且已知的OID_GEN_SUPPORTED_LIST返回的 OID 和状态指示映射到 NDIS 定义的 GUID。
以下部分介绍如何在处理 IRP 的驱动程序中支持 WMI。