Windows 显示器EDID笔记
显示器中的EDID:
EDID\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\NEC3396\4&13b58229&0&UID16433\Device Parameters 下的EDID,存储的硬件显示器中的EDID。
CRU 或用户覆盖 EDID,优先使用覆盖 EDID:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\NEC3396\4&13b58229&0&UID16433\Device Parameters\EDID_OVERRIDE
- 写入 EDID_OVERRIDE 后,系统就只认覆盖的分辨率列表。
- 如果没有覆盖,系统默认使用 EDID。
数据流(原生 vs 覆盖)
显示器 EEPROM → 驱动读取 → 注册表 EDID
↓
若存在 EDID_OVERRIDE → 使用覆盖 EDID
↓
驱动枚举分辨率 → Windows 显示设置
CRU 修改 EDID 时:
- 生成新的 EDID buffer
- 写入 EDID_OVERRIDE
- 重启驱动后系统使用覆盖数据,而原始 EDID 保留不变。
EDID_OVERRIDE 下的属性详解
名称 | 类型 | 说明 |
---|---|---|
(默认) | REG_SZ | 没有设置,通常不使用 |
0 | REG_BINARY | EDID 基础块(Block 0),128 字节。包含 EDID header、厂商 ID、产品代码、序列号、版本号、首选分辨率等。 一般由CRU 的Detailed resolutions 设置 |
1 | REG_BINARY | EDID 扩展块(Block 1),128 字节。通常是 CTA-861 扩展块或 VESA 扩展块,包含额外分辨率、音频、颜色信息等。 一般由Extensions resolutions 是用来配置 EDID 扩展块(Extension Block)。 |
CRU_Extensions | REG_BINARY | 表示 CRU 新增的扩展块类型和数量,CRU 用来标记哪些扩展块是用户添加的。 |
CRU_Name | REG_BINARY | 用户自定义显示器名称,CRU 保存的标识信息(通常是 ASCII 编码)。 |
CRU_Range_Limits | REG_BINARY | 用户自定义的分辨率范围限制(Range Limits Block),如最大像素时钟、水平/垂直频率范围。 |
CRU_Serial_Number | REG_BINARY | 用户自定义显示器序列号,覆盖原 EDID 序列号字段(ASCII 编码,例如 00 34 37 33 30 38 30 31 37 4e 43 → "47308017NC" )。 |
- Block 0 是基础块,后面才是扩展块