如何从 Windows 应用程序访问 DDC/CI 显示相关设备



我正在为原型修改监视器控制器。使用 DDC/CI 向原型发送命令会很方便。在Windows中,我找不到将DDC/CI命令发送到"显示依赖设备"的明显方法。

监视器配置 API 可以发送虚拟控制面板命令,但它不提供对显示相关设备(具有 0x6e 以外的 I2C 地址(的访问权限。

Nicomsoft的WinI2C/DDC产品似乎可以访问依赖于显示器的设备,但它已经结束了使用寿命。我宁愿不依赖报废产品。

NVIDIA的NVAPI有一个I2C API,但我想要一个也适用于英特尔和AMD图形适配器的解决方案。

对于遵循XDDM驱动程序显示模型的窗口,存在解决方案。Windows 8 和 10 使用 WDDM。

在 XDDM 中,有一个 Windows 操作系统提供的视频端口驱动程序,硬件供应商提供微型端口驱动程序。当微型端口驱动程序调用视频端口驱动程序的 edid 帮助程序 API (VideoPortDDCMonitorHelper( 时,微型端口必须提供 4 个 i2c 函数指针作为参数。

但是,为了使用这些接口,您必须充当视频端口驱动程序。因此,你必须编写一个视频端口下部筛选器驱动程序,该驱动程序只是将所有接口从 Windows 提供的视频端口驱动程序传递到微型端口驱动程序。挂钩 API 并将其导出到应用程序可以调用的用户模式驱动程序或 ioctl。

可以简单地装载微型端口驱动程序的实例,以及如何让它调用VideoPortDDCMonitorHelper。但是,如果没有实际视频端口驱动程序的帮助,则很难获得有关如何执行此操作的指导。此外,您将运行 2 个驱动程序实例,这可能违反 Windows 规则。

此解决方案似乎不适用于 Windows 8 和 10,因为它们使用不同的显示驱动程序模型,该模型似乎不会公开 i2c 的低级别控制。它位于微型端口驱动程序的内部。

相关内容

  • 没有找到相关文章

最新更新