How can I access the DDC / CI Display dependent device from a Windows application?

I am modifying a monitor controller for a prototype. It would be convenient to send commands to the prototype using DDC / CI. On Windows, I can't seem to find an obvious way to send a DDC / CI command to a "display dependent device".

The monitor configuration API can send commands to the virtual control panel, but it does not allow access to display dependent devices (which have an I2C address other than 0x6e).

Nicomsoft The WinI2C / DDC product seems to give access to a display dependent device, but this is the end of life. I would rather not build dependency on an end-of-life product.

NVIDIA NVAPI has I2C API, but I would like a solution that will also work with Intel and AMD graphics.

+3


source to share


1 answer


There is a solution for windows that consider the display model of the XDDM driver. Windows 8 and 10 use WDDM.

XDDM has a windows OS video stream driver, and the hardware vendor supplies a miniport driver. When the miniport driver calls the edid edid api ( VideoPortDDCMonitorHelper

) driver , the miniport must provide 4 i2c function pointers as arguments.

To use these interfaces, you must act as a video port driver. Thus, you need to write a low video port filter driver that simply passes through all interfaces from the video port driver connected to the window to the miniport driver. Take the api and export it to a usermode or ioctl driver that the application can call.



It might be easy to mount an instance of the miniport driver, and some how to call it VideoPortDDCMonitorHelper

. But without the help of the actual video portal driver, it would be difficult to get guidance on how to do this. Also you will have 2 instances of the launcher driver, which may be against the window rules.

This solution doesn't seem to work for windows 8 and 10 because they are using a different display driver model that doesn't seem to provide a low level of i2c control. It is internal to the miniport driver.

+1


source







All Articles