Only the first 128 bytes of EDID stored in the registry??
I've recently noticed that only the first 128 bytes of EDID is stored in the registry on any PC/laptop I have running Windows 7, given that the display/sink contains a 256 byte or larger EDID (any HDMI sink will of course). This is a range of ATI & NVidia based cards, so I do not believe it to be a graphics card/driver issue. Many of these PCs also have Windows XP on a separate partition (so the same hardware), and in XP all 256 bytes of the EDID are stored in the registry. Is this a bug or is this intended? Are the extension block(s) of the EDID now stored in a different location perhaps? I work with EDID on a regular basis and use several EDID viewing / translating programs, which collect the EDID from the Windows registry. With XP this was never an issue.
January 21st, 2010 11:40pm

How to Use an INF to Override the Monitor EDIDCarey Frisch
Free Windows Admin Tool Kit Click here and download it now
January 22nd, 2010 1:49am

How to Use an INF to Override the Monitor EDID Carey Frisch I'm aware of how to override EDID using an INF, however that is not related to the issue I described. I am not having an issue outputting a signal. I am simply asking why Windows 7 seems to only record the first block (128 bytes) of EDID in the registry from EDID that contains an extension block (256 bytes). Windows XP records all 256 Bytes in the registry.
January 22nd, 2010 2:15am

Have you read the document? You can see the following contents. How to Update an EDID by Using an INFTo update an EDID by using an INF:1. The monitor manufacturer implements an INF that contains the updated EDID information and downloads the file to the user’s computer. This can be done through Windows Update or by shipping a CD with the monitor.2. The monitor class installer extracts the updated EDID information from the INF and stores the information as values under the following registry key:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY Each EDID override is stored under a separate key, for example:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\DELA007\ 5&1608c50f&0&10000090&01&20\Device Parameters\EDID_Override 3. The monitor driver checks the registry during initialization and uses any EDID information that is stored there instead of the corresponding information on EEPROM.EDID information that has been added to the registry always takes precedence over EEPROM EDID.4. Windows components and user-mode applications use the updated EDID information.EDID FormatEDID data is formatted as one or more 128-byte blocks:• EDID version 1.0 through 1.2 consists of a single block of data, per the VESA specification.• With EDID version 1.3 or enhanced EDID (E-EDID), manufacturers can specify one or more extension blocks in addition to the primary block. Each block is numbered, starting with 0 for the initial block. To update EDID information, the manufacturer’s INF specifies the number of the block to be updated and provides 128 bytes of EDID data to replace the original block. The monitor driver obtains the updated data for the corrected blocks from the registry and uses the EEPROM data for the remaining blocks.How to Override EDID Information in an INFTo override an EDID, include an AddReg directive in the INF for each block that you want to override, in the following format:HKR, EDID_OVERRIDE, BlockNumber, Byte 1, Byte 2, Byte 3, Byte 4,... The block number is followed by 128 hexadecimal integers that contain the binary EDID data.Manufacturers must update only those EDID blocks that are incorrect. The system obtains the remaining blocks from EEPROM. The following example shows the relevant sections of an INF that updates EDID blocks 0, 4, and 5. The monitor driver obtains blocks 1 - 3 and any extension blocks that follow block 5 from EEPROM:[ABC.DDInstall.HW]ABC.AddReg...[ABC.AddReg]HKR, EDID_OVERRIDE, 0, 1, 00, FF, ..., 3BHKR, EDID_OVERRIDE, 4, 1, 1F, 3E, ..., 4EHKR, EDID_OVERRIDE, 5, 1, 24, 5C, ..., 2D... For more information on INFs in general and AddReg and DDInstall in particular, see “Creating an INF File” in the WDK.Arthur Xie - MSFT
Free Windows Admin Tool Kit Click here and download it now
January 25th, 2010 12:33pm

Again, I am not having a problem with a display being detected correctly. I have no need to update or override the EDID for any reason, as everything is operating correctly. The video drivers are able to see all 256 Bytes of data, as the display is correctly detected as HDMI and audio is enabled on the HDMI output (this would not be possible otherwise since if the extension block is not present or recognized, it would default to DVI). It just seems that the default action for Windows 7 is to only record 128 BYTES of any EDID into the registry. Connect any HDMI display and boot. Go to the registry location and locate the display by the model name (as listed in the EDID). HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY then expand the key and Device Parameters, then view the EDID data listed in HEX. You will see that only 128 Bytes are listed. If you do the same thing in Windows XP (same PC hardware & display) you will see all 256 Bytes of EDID. In fact, in Windows XP, if the EDID doesn't contain 256 Bytes, usually the second block is filled with 00's. This is mainly a problem for EDID viewing/translating programs, which rely on the EDID contained in the Registry. These programs are no longer reliable with Windows 7 since the extension block is not available.
January 26th, 2010 9:28pm

Wow, what a run-around. That document in no way answers the question. I am seeing the exact same thing. It's a real hassle. Wish someone knew the answer... -Valkyrie-MT
Free Windows Admin Tool Kit Click here and download it now
May 7th, 2010 6:01am

Have you read the document? You can see the following contents... Arthur Xie - MSFT Yes I have. It says, one can amend EDID in Registry by adding blocks that are wrong or missing in the Monitor's EEPROM EDID. However, if Win 7 Registry only accepts first 128 bytes of the EDID, its not going to help. In addition, many monitors' corrected EDIDs can't be written back to the monitor with Powerstrip due to hardware limitations. So no way to upgrade the monitor itself via software or correct EDID in Win 7 Registry? Then the above cited article should be corrected to explicitly exclude Win 7. But the question "why" remains unanswered. Is that done on purpose to ignore Registry EDID except the 1-st block, and prompt to correct EDIDs via Nvidia drivers, as this article seems to suggest: Microsoft EDID Override not working ? May be its time to explain this Win 7 limitation, or admit and fix this Win7 bug, if not intended by developers? Pls add some meaningful comments to your above citation.
May 19th, 2010 2:54pm

Just to add to this issue with the truncated EDID in Windows7, I have found that others have seen the same thing. I've also tried to get the full EDID through WMI, but that's truncated too. I have no clue why this is truncated, but it's been a huge headache for me. Wish we could get a real answer on this from someone who understands the problem... -Valkyrie-MT
Free Windows Admin Tool Kit Click here and download it now
March 27th, 2011 4:25am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics