从设备驱动程序访问数据

Windows 驱动程序模型 (WDM) 提供程序可授权访问符合 WDM 模型的硬件驱动程序的类、实例、方法和事件。 硬件驱动程序的类位于 \\root\wmi 命名空间。

WDM 提供程序面向编写设备驱动程序的人员和对设备驱动程序数据感兴趣的管理员。

本主题讨论以下部分:

设备驱动程序编写者信息

当 WDM 提供程序从设备驱动程序可执行文件中提取二进制 MOF 时,将创建与特定设备驱动程序相关的 WMI 类。 启动 WMI、安装新的设备驱动程序或删除特定驱动程序的 WMIBinaryMofResource 实例时,就会发生这种情况。 通过检查 Wmiprov.log,可以确定在提取二进制 MOF 文件时是否发生了导致失败的错误。 Mofcomp.log 中报告了 mofcomp 错误的详细信息。 有关详细信息,请参阅 WMI 日志文件。 出于性能原因,WDM 提供程序不会在因 WDM 提供程序启动或停止而创建或删除类时生成事件。

WDM 提供程序将所有 WNODE 数据转换为类信息。 如果将数据从 WNODE 转换为类数据时遇到错误,则 Wmiprov.log 中会报告该错误,其中标头和字节采用内存转储的格式。

在卸载并重新加载 WDM 提供程序之前,对驱动程序安全设置所做的更改不会生效。 有关详细信息,请参阅卸载提供程序

WMI 还可以为硬件驱动程序提供高性能计数器。 有关在 Perfmon 系统监视器中创建高性能类和显示数据的详细信息,请参阅提高实例提供程序的效率。 有关编写支持 WMI 的设备驱动程序的详细信息,请参阅 https://www.microsoft.com/ddk。 有关 MOF 文件中 WDM 特定限定符的详细信息,请参阅特定于 WDM 提供程序的限定符

驱动程序数据的管理员和用户信息

列出 WMIBinaryMofResource 类的实例可提供系统中驱动程序的列表,以及有关 WDM 提供程序是否成功为每个驱动程序编译 MOF 的信息。 可以通过删除表示驱动程序的 WMIBinaryMofResource 实例来强制提供程序重新编译和重新生成该驱动程序的类。 Mofcomp.log 中报告了 mofcomp 错误的详细信息。

如果 WMI 命名空间损坏,可以将其删除并将其重新打开以强制 WDM 重建驱动程序类。 有关打开命名空间的详细信息,请参阅在 WMI 中创建层次结构

如果驱动程序加载中断或出现其他异常操作,驱动程序类偶尔会“卡住”。 安装新的驱动程序或 Software\Microsoft\WBEM\WDMProvider 注册表项值 ProcessStrandedClasses 设置为 TRUE 时,WDM 提供程序将只搜索并清理“卡住”类。 由于清理操作,将此值设置为 TRUE 会降低 WMI 启动性能。 默认值为 FALSE。 WDM 提供程序只在首次打开“Root\Wmi”命名空间时检查此注册表值。

如果对 WDM 设备驱动程序进行了安全更改,则在卸载并重新加载 WDM 提供程序之前,更改不会生效。 必须停止并重启 Windows 管理服务才能完成此操作。

使用 WMI