使用 WMI 库注册块
如果驱动程序注册的块不使用动态实例名称,或者使用基于 PDO 或驱动程序定义的基名称字符串的静态实例名称,则驱动程序可以使用 WMI 库来处理 IRP_MN_REGINFO 和 IRP_MN_REGINFO_EX 请求。 在这种情况下,驱动程序:
使用指向驱动程序的设备对象的指针、指向WMILIB_CONTEXT结构的指针和指向 IRP 的指针调用 WmiSystemControl
WMILIB_CONTEXT 结构指示 (GuidCount) 注册的块数,并指向指定 GUID、实例数以及与相应块相关的注册标志 (GuidList) WMIGUIDREGINFO 结构的列表。 它还为驱动程序的必需和可选的 DpWmiXxx 回调例程定义入口点。
当 WMI 调用驱动程序的 DpWmiQueryReginfo 例程时,驱动程序将指定驱动程序的注册表路径、其 MOF 资源名称、与其所有块相关的注册标志,以及 WMI 用于命名驱动程序数据块实例的信息,该数据块可以是指向传递给驱动程序 AddDevice 例程的物理设备对象的指针,也可以是静态实例名称的基础字符串。
在调用 WmiSystemControl 之前,驱动程序必须在 WMILIB_CONTEXT 结构中初始化其 DpWmiXxx 回调例程的入口点,但可以推迟WMILIB_CONTEXT结构中 GuidCount 和 GuidList 的初始化,直到 WMI 调用驱动程序的 DpWmiQueryReginfo 例程。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈