我正在修改原型的监视器控制器。使用DDC / CI将命令发送到原型会很方便。在Windows中,我无法找到一种明显的方法将DDC / CI命令发送到显示相关设备"。
Monitor Configuration API可以发送虚拟控制面板命令,但它不允许访问显示相关设备(其地址不是0x6e)。
Nicomsoft的WinI2C/DDC产品似乎可以访问与显示相关的设备,但它已经过时了。我宁愿不依赖于报废产品。
NVIDIA的NVAPI有一个I2C API,但我想要一个适用于Intel和AMD图形适配器的解决方案。
答案 0 :(得分:1)
存在针对XDDM驱动程序显示模型的Windows的解决方案。 Windows 8和10使用WDDM。
在XDDM中有一个Windows O.S.提供视频端口驱动程序,硬件供应商提供微型端口驱动程序。当微型端口驱动程序调用视频端口驱动程序的edid helper api(VideoPortDDCMonitorHelper
)时,微型端口必须提供4个i2c函数指针作为参数。
为了利用这些接口,您必须充当视频端口驱动程序。因此,您必须编写一个视频端口较低的过滤器驱动程序,它只是将Windows提供的视频端口驱动程序上的所有接口传递给微型端口驱动程序。挂钩api并将它们导出到应用程序可以调用的用户模式驱动程序或ioctl。
可以简单地安装微型端口驱动程序的实例,以及如何调用VideoPortDDCMonitorHelper
。但是在没有实际视频端口驱动程序的帮助下,很难获得如何做到这一点的指导。此外,您将运行2个驱动程序实例,这可能违反了Windows的规则。
这个解决方案似乎不适用于Windows 8和10,因为它们使用的是不同的显示驱动程序模型,它看起来不会暴露i2c的低级别控制。它是微型端口驱动程序的内部。