23.4 EDID Active Protocol Implementation

The EFI_EDID_ACTIVE_PROTOCOL provides information to the system about a video output device. This is retrieved from either the EFI_EDID_DISCOVERED_PROTOCOL or the EFI_EDID_OVERRIDE_PROTOCOL. The protocol interface structure is defined below. The EDID information for the video output device (for example the monitor) connected to this graphics output device is populated into this protocol for use by the system. It is the job of the driver to populate this information. The minimum valid size of EDID information is 128 bytes. See the EDID EEPROM specification for details on the format of an EDID. This protocol does not provide any services. It only provides a pointer to a buffer with the EDID formatted data.

Example 234-EDID Active Protocol
///
/// This protocol contains the EDID information for an active video output device.
/// This is either the EDID information retrieved from the
/// EFI_EDID_OVERRIDE_PROTOCOL if an override is available, or an identical copy of
/// the EDID information from the EFI_EDID_DISCOVERED_PROTOCOL if no overrides are
/// available.
///
typedef struct {
  ///
  /// The size, in bytes, of the Edid buffer. 0 if no EDID information
  /// is available from the video output device. Otherwise, it must be a
  /// minimum of 128 bytes.
  ///
  UINT32 SizeOfEdid;

  ///
  /// A pointer to a read-only array of bytes that contains the EDID
  /// information for an active video output device. This pointer is
  /// NULL if no EDID information is available for the video output
  /// device. The minimum size of a valid Edid buffer is 128 bytes.
  /// EDID information is defined in the E-DID EEPROM
  /// specification published by VESA (www.vesa.org).
  ///
  UINT8 *Edid;
} EFI_EDID_ACTIVE_PROTOCOL;

extern EFI_GUID gEfiEdidActiveProtocolGuid;