存在尊重 XDDM 驱动程序显示模型的 Windows 的解决方案。Windows 8 和 10 使用 WDDM。
在 XDDM 中有一个 Windows 操作系统提供的视频端口驱动程序,而硬件供应商提供了一个微型端口驱动程序。当微型端口驱动程序调用视频端口驱动程序的 edid helper api ( VideoPortDDCMonitorHelper) 时,微型端口必须提供 4 个 i2c 函数指针作为参数。
但是,为了使用这些接口,您必须充当视频端口驱动程序。所以你必须编写一个视频端口低过滤器驱动程序,它只是将所有接口从 Windows 提供的视频端口驱动程序传递到微型端口驱动程序。挂钩 api 并将它们导出到应用程序可以调用的用户模式驱动程序或 ioctl。
可以简单地挂载一个微型端口驱动程序的实例以及如何调用它VideoPortDDCMonitorHelper。但是如果没有实际的视频端口驱动程序的帮助,很难获得如何做到这一点的指导。此外,您将运行 2 个驱动程序实例,这可能违反 Windows 规则。
该解决方案似乎不适用于 Windows 8 和 10,因为它们使用不同的显示驱动程序模型,该模型似乎不会暴露 i2c 的低级控制。它在微型端口驱动程序内部。