6

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

Monitor Configuration API可以发送虚拟控制面板命令,但不能访问显示相关设备(其 I2C 地址不是 0x6e)。

Nicomsoft 的WinI2C/DDC产品似乎可以访问依赖于显示的设备,但它已报废。我不希望建立对报废产品的依赖。

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

4

1 回答 1

1

存在尊重 XDDM 驱动程序显示模型的 Windows 的解决方案。Windows 8 和 10 使用 WDDM。

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

但是,为了使用这些接口,您必须充当视频端口驱动程序。所以你必须编写一个视频端口低过滤器驱动程序,它只是将所有接口从 Windows 提供的视频端口驱动程序传递到微型端口驱动程序。挂钩 api 并将它们导出到应用程序可以调用的用户模式驱动程序或 ioctl。

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

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

于 2016-05-18T06:30:10.553 回答