共用方式為


使用 INF 檔案覆寫 EDID

本文說明廠商和製造商如何使用 INF 檔案來覆寫任何監視器的擴充顯示識別數據 (EDID)。 它也包含範例 INF 檔案 (Monsamp.inf)。

EDID 是監視器用來將其功能與圖形卡等視訊來源通訊的元數據格式。 其中包含監視標識碼、製造商數據、硬體標識碼、計時資訊等資訊。 此資料會以 VESA 指定的格式儲存在監視器的 EEPROM 中。 所有監視器、類比或數位都必須支援EDID。

監視器會將EDID提供給Windows元件、顯示驅動程式,以及某些使用者模式應用程式。 例如,在初始化期間,監視器驅動程式會查詢 Windows 顯示驅動程式模型 (WDDM) 驅動程式,以取得其亮度查詢介面和裝置驅動程式介面 (DDI) 支援,其位於 EDID 中。 監視器 EEPROM 上的不正確或無效的 EDID 資訊可能會導致設定不正確的顯示模式等問題。

修正 EDID 的方法有兩種:

  • 讓客戶將監視器傳回給製造商,該製造商會以正確的EDID重新刷新EEPROM,並將監視器傳回給客戶。
  • 實作包含正確 EDID 資訊的 INF 檔案,並讓客戶將它下載到連線到監視器的電腦。 Windows 會從 INF 擷取更新的 EDID 資訊,並將其提供給元件,而不是使用 EEPROM EDID 資訊,有效地覆寫 EEPROM EDID。 這個更簡單的方法是製造商和客戶更好的解決方案。

除了取代EDID資訊之外,廠商還可以提供監視名稱和慣用顯示解析度的覆寫。 客戶可以在寄送方塊中,透過 Windows Update 或數位媒體經常存取此覆寫。 此覆寫的優先順序高於本文所述的EDID覆寫。 如需詳細資訊,請參閱 監視 INF 檔案區段

EDID 格式

EDID 資料會格式化為一或多個 128 位元組區塊:

  • EDID 1.0 到 1.2 版是由每個 VESA 規格的單一數據區塊所組成。
  • EDID 1.3 版或增強的 EDID (E-EDID) 可讓製造商除了主要區塊之外,還要指定一或多個擴充區塊。

每個區塊都會編號,從初始區塊的 0 開始。 若要更新 EDID 資訊,製造商的 INF 會指定要更新的區塊數目,並提供 128 個字節的 EDID 數據來取代原始區塊。 監視驅動程式會從登錄取得已更正區塊的更新數據,並使用其餘區塊的 EEPROM 數據。

更新EDID

若要使用 INF 更新 EDID:

  1. 監視器製造商會實作 INF,其中包含更新的 EDID 資訊,並將檔案下載到用戶的電腦。 此下載可透過 Windows Update 完成,或透過傳送 CD 與監視器來完成。
  2. 裝置安裝會從 INF 讀取更新的 EDID 資訊,並將資訊儲存為監視裝置硬體金鑰的值。 每個 EDID 覆寫都會儲存在裝置硬體金鑰下的個別金鑰下。
  3. 監視驅動程式會在初始化期間檢查登錄,並使用儲存在那裡的任何EDID資訊,而不是EEPROM上的對應資訊。 新增至登錄的 EDID 資訊一律優先於 EEPROM EDID 資訊。
  4. Windows 元件和使用者模式應用程式會使用更新的 EDID 資訊。

使用 INF 覆寫 EDID

若要覆寫 EDID, 請在 INF 中包含您要覆寫之每個區塊的 AddReg 指示詞 ,格式如下:

HKR, EDID_OVERRIDE, BlockNumber, 0x1, Byte 1, Byte 2, Byte 3, Byte 4,...

區塊編號是要覆寫之 EDID 區塊的零索引值。 數據位元組應該格式化為包含二進位EDID數據的128個十六進位整數。 區塊編號之後的 「0x1」 值是指出此登錄值包含二進位數據 (FLG_ADDREG_BINVALUETYPE) 的旗標。

製造商必須只更新不正確之EDID區塊。 系統會從 EEPROM 取得其餘區塊。 下列範例顯示更新EDID區塊0、4和5之INF的相關區段。 監視驅動程式會從 EEPROM 取得區塊 1 - 3 和後續區塊 5 的任何擴充區塊:

[ABC.DDInstall.HW]
ABC.AddReg
...
[ABC.AddReg]
HKR, EDID_OVERRIDE, 0, 1, 00, FF, ..., 3B
HKR, EDID_OVERRIDE, 4, 1, 1F, 3E, ..., 4E
HKR, EDID_OVERRIDE, 5, 1, 24, 5C, ..., 2D
...

如需一般 INF 的詳細資訊,特別是 AddReg 和 DDInstall,請參閱建立 INF 檔案

範例 INF 檔案:Monsamp.inf

如需如何使用和修改 Monsamp.inf 的資訊,請參閱 監視 INF 檔案區段

; monsamp.INF
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
; This is a generic INF file for overriding EDIDs
; of any monitors, starting with Windows Vista.
;

[Version]
Signature="$WINDOWS NT$"
Class=Monitor
ClassGuid={4D36E96E-E325-11CE-BFC1-08002BE10318}
Provider=%MS_EDID_OVERRIDE%
DriverVer=04/18/2006, 1.0.0.0
PnpLockdown=1

; Be sure to add the directive below with the proper catalog file after
; WHQL certification.
;CatalogFile=Sample.cat


[DestinationDirs]
DefaultDestDir=23

[SourceDisksNames]
1=%SourceDisksNames%

; Enable the following section to copy a monitor profile.
[SourceDisksFiles]
;profile1.icm=1

[Manufacturer]
%MS_EDID_OVERRIDE%=MS_EDID_OVERRIDE,NTx86,NTamd64

; Modify the hardware ID (MON1234) to match that of the monitor being used.
[MS_EDID_OVERRIDE.NTx86]
%MS_EDID_OVERRIDE-1%=MS_EDID_OVERRIDE-1.Install, MONITOR\MON1234

; Modify the hardware ID (MON1234) to match that of the monitor being used.
[MS_EDID_OVERRIDE.NTamd64]
%MS_EDID_OVERRIDE-1%=MS_EDID_OVERRIDE-1.Install.NTamd64, MONITOR\MON1234

[MS_EDID_OVERRIDE-1.Install.NTx86]
DelReg=DEL_CURRENT_REG
AddReg=MS_EDID_OVERRIDE-1.AddReg, 1024, 1280, DPMS
CopyFiles=MS_EDID_OVERRIDE-1.CopyFiles

[MS_EDID_OVERRIDE-1.Install.NTamd64]
DelReg=DEL_CURRENT_REG
AddReg=MS_EDID_OVERRIDE-1.AddReg, 1024, 1280, DPMS
CopyFiles=MS_EDID_OVERRIDE-1.CopyFiles

[MS_EDID_OVERRIDE-1.Install.NTx86.HW]
AddReg=MS_EDID_OVERRIDE-1_AddReg

[MS_EDID_OVERRIDE-1.Install.NTamd64.HW]
AddReg=MS_EDID_OVERRIDE-1_AddReg

[MS_EDID_OVERRIDE-1_AddReg]
HKR,EDID_OVERRIDE,"0",0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x35,\
0xEE,0x34,0x12,0x01,0x00,0x00,0x00,0x0A,0x0E,0x01,0x03,0x68,0x22,0x1B,\
0x78,0xEA,0xAE,0xA5,0xA6,0x54,0x4C,0x99,0x26,0x14,0x50,0x54,0xA5,0x4B,\
0x00,0x71,0x4F,0x81,0x80,0xA9,0x40,0x01,0x01,0x01,0x01,0x01,0x01,0x01,\
0x01,0x01,0x01,0x30,0x2A,0x00,0x98,0x51,0x00,0x2A,0x40,0x30,0x70,0x13,\
0x00,0x52,0x0E,0x11,0x00,0x00,0x1E,0x00,0x00,0x00,0xFF,0x00,0x41,0x42,\
0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x0A,0x00,0x00,0x00,\
0xFC,0x00,0x4D,0x53,0x20,0x31,0x32,0x33,0x34,0x0A,0x0A,0x0A,0x0A,0x0A,\
0x0A,0x00,0x00,0x00,0xFD,0x00,0x38,0x4C,0x1F,0x50,0x12,0x00,0x0A,0x20,\
0x20,0x20,0x20,0x20,0x20,0x00,0xDB

[DEL_CURRENT_REG]
HKR,MODES
HKR,,MaxResolution
HKR,,DPMS
HKR,,ICMProfile

; Pre-defined AddReg sections. These can be used for default settings
; when a given standard resolution is used.

[1024]
HKR,,MaxResolution,,"1024,768"
[1280]
HKR,,MaxResolution,,"1280,1024"

[DPMS]
HKR,,DPMS,,1

[MS_EDID_OVERRIDE-1.AddReg]
HKR,"MODES\1024,768",Mode1,,"31.0-94.0,55.0-160.0,+,+"
HKR,"MODES\1280,1024",Mode1,,"31.0-94.0,55.0-160.0,+,+"

; Enable the following section to copy a monitor profile.
[MS_EDID_OVERRIDE-1.CopyFiles]
;PROFILE1.ICM

[Strings]
MonitorClassName="Monitor"
SourceDisksNames="MS_EDID_OVERRIDE Monitor EDID Override Installation Disk"

MS_EDID_OVERRIDE="MS_EDID_OVERRIDE"
MS_EDID_OVERRIDE-1="MS EDID Override"