Queries a monitor for EDID information using the DDC protocol.
VIDEOPORT_API BOOLEAN VideoPortDDCMonitorHelper( IN PVOID HwDeviceExtension, IN PVOID DDCControl, IN OUT PUCHAR EdidBuffer, IN ULONG EdidBufferSize );
A pointer to the miniport driver's device extension.
A pointer to a DDC_CONTROL structure.
A pointer to a buffer in which the video port driver returns the EDID structure. For ACPI devices, the first four bytes are preset by the video port driver to indicate an attempt to read the EDID.
The size in bytes of the buffer to which EdidBuffer points.
VideoPortDDCMonitorHelper returns TRUE if successful.
This function existed prior to the Windows XP release, but has been changed.
The video miniport driver's HwVidGetVideoChildDescriptor function can call VideoPortDDCMonitorHelper for assistance in reading the EDID structure from a DDC2-compliant monitor. VideoPortDDCMonitorHelper implements the details of reading the EDID structure according to the I²C specification, but must call back into the video miniport driver to read and write individual data bits to the I²C serial clock and data lines.
The four functions, implemented by the video miniport driver, that read and write individual bits to the I²C clock and data lines are ReadClockLine, ReadDataLine, WriteClockLine, and WriteDataLine. When the video miniport driver calls VideoPortDDCMonitorHelper, it supplies pointers to those four functions in DDCControl->I2CCallbacks.
The EDID can be obtained using the ACPI_METHOD_OUTPUT_DDC method whose alias is defined in Dispmprt.h. This method is required for integrated LCDs that do not have another standard mechanism for returning EDID data.
In a 256-byte buffer, a caller of this function can receive:
- One 128-byte EDID
- Two 128-byte EDIDs
- One 256-byte EDID (from P&D display)
- No EDID
The caller should always ask for the full 256 bytes, because it is impossible to read just the second 128-byte block of the segment.
|Minimum supported client||Available in Windows 2000 and later versions of the Windows operating systems.|
|Header||video.h (include Video.h)|