Share via


顯示 INF 檔案區段

本節說明如何撰寫安裝資訊檔 (INF) 特別套用至圖形介面卡安裝的區段。 如需 INF 檔案的一般資訊,請參閱 INF 檔案區段和指示詞

DDInstall.SoftwareSettings 區段

DDInstallSoftwareSettings區段包含AddReg指示詞和/或DelReg指示詞。 每個指示詞都會指向個別的寫入器定義 INF 區段,其中包含要新增或刪除之安裝程式的登錄專案。

例如,下列程式碼顯示 AddReg 指示詞,指向名為 ACME-1234_SoftwareDeviceSettings的寫入器定義 add-registry 區段。 DelReg指示詞指向名為ACME-1234_DeleteSWSettings的 delete-registry區段。

[ACME-1234.SoftwareSettings]
AddReg=ACME-1234_SoftwareDeviceSettings
DelReg=ACME-1234_DeleteSWSettings

add-registry 區段會將四個專案新增至登錄並設定其值,如下列程式碼所示。

[ACME-1234_SoftwareDeviceSettings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, Acme1
HKR,, OverRideMonitorPower, %REG_DWORD%, 0
HKR,, MultiFunctionSupported, %REG_DWORD%, 1
HKR,, VideoDebugLevel, %REG_DWORD%, 2

上述程式碼會先將 InstalledDisplayDrivers 專案的值設定為顯示驅動程式的名稱。 然後,程式碼會將 OverRideMonitorPower 專案的值設定為 0 (,換句話說, FALSE) 。 此專案僅供 OEM 系統廠商使用,可控制監視裝置的電源行為 (,例如,[LED]、[CRT] 或 [電視) ]。 當設定為 1 時, OverRideMonitorPower 會將監視裝置的可能電源狀態限制為 D0 和 D3。

第三,程式碼會將 MultiFunctionSupported 專案的值設定為 1 (,換句話說, TRUE) ,這是支援多個 PCI 函式之介面卡的必要值。 最後,程式碼會設定 VideoDebugLevel 專案的值,控制檢查組建用於偵錯訊息的全域偵錯層級。 此值的範圍從 0 (沒有偵錯訊息) 到 3 (最詳細的訊息) 。 如需全域偵錯層級的詳細資訊,請參閱 VideoDebugPrint

大部分的視訊迷你埠驅動程式與 VGA 不相容,而且不需要登錄中的 VgaCompatible 專案。 如果您的視訊迷你埠驅動程式與 VGA 相容,請將 VgaCompatible 專案新增至登錄,並將其值設定為 1 (在 [新增登錄] 區段中的 TRUE) ,如下所示:

[ACME-1234_SoftwareDeviceSettings]
HKR,, VgaCompatible, %REG_DWORD%, 1

如需 VGA 相容視訊迷你埠驅動程式的詳細資訊,請參閱 VGA 相容的視訊迷你埠驅動程式 (Windows 2000 模型)

下列 delete-registry 區段會刪除三個登錄專案: GraphicsClockingMemClockingCapabilityOverride

[ACME-1234_DeleteSWSettings]
HKR,, GraphicsClocking
HKR,, MemClocking
HKR,, CapabilityOverride

CapabilityOverride專案會指定系統為顯示驅動程式關閉的功能。 例如,即使顯示驅動程式實作 DrvEscape 函式,如果在 CapabilityOverride 專案中設定了0x10旗標,就無法使用該功能。

CapabilityOverride登錄專案的值是下表所列之一或多個旗標的位 OR。

旗標 意義

0x1

停用所有硬體加速。 相當於將主控台) 的[顯示] 專案中的硬體加速投影片列 (移至最小設定。

0x2

停用 Microsoft DirectDraw 和 Microsoft Direct3D 硬體加速的所有支援。

0x4

停用 Direct3D 硬體加速的所有支援。 防止呼叫 DdGetDriverInfo 要求 Direct3D 功能和回呼資訊,以到達驅動程式。

0x8

停用 OpenGL 可安裝用戶端驅動程式的所有支援, (ICD) 和迷你用戶端驅動程式 (MCD) 。 防止呼叫 DrvSetPixelFormatDrvDescribePixelFormatDrvSwapBuffers 到達驅動程式。 此外,也會防止OPENGL_GETINFO,OPENGL_CMD和 MCDFUNCS 無法到達驅動程式。

0x10

停用驅動程式中所有逸出的支援。 防止對 DrvEscapeDrvDrawEscape 的呼叫到達驅動程式。

針對隨附于 Windows 的顯示驅動程式, CapabilityOverride 通常會設定為 0x8,這會停用 OpenGL。 請注意,您不需要將 0x10 旗標設定為停用 OpenGL,而且除非您打算停用所有逸出,否則不應該設定 0x10 旗標。

當顯示驅動程式更新時,Microsoft Windows XP 和舊版作業系統不會刪除 CapabilityOverride 登錄專案,例如,從隨附于 Windows 的驅動程式到獨立硬體廠商提供的最新驅動程式, (IHV) 。 持續性 CapabilityOverride 專案會在更新的驅動程式中停用舊驅動程式中的相同功能。 因此,針對 Windows XP 和更早版本,請在您的 INF 檔案中包含 DelReg 指示詞,以明確刪除現有的 CapabilityOverride 專案。 Windows XP SP1 和更新版本的作業系統會在更新驅動程式時自動刪除 CapabilityOverride 專案,因此對於這些系統,不需要刪除 CapabilityOverride 專案。

停用 AGP 傳輸速率和側帶定址

如有必要,您可以修改顯示介面卡的 INF 檔案,以停用特定 AGP 傳輸速率或側帶定址。 請注意,迷你埠驅動程式可以在呼叫 AgpSetRate 時變更 AGP傳輸速率,但不允許這類呼叫變更 INF 檔案中停用的傳輸速率。

隨附于 Windows 驅動程式套件 (WDK) 的 regstr.h 標頭檔會定義下列一組旗標。

旗標 意義

AGP_FLAG_NO_1X_RATE

0x00000001L

停用單一速度 (66 MHz) 傳輸速率。

AGP_FLAG_NO_2X_RATE

0x00000002L

停用單一速度傳輸速率的兩倍。

AGP_FLAG_NO_4X_RATE

0x00000004L

停用單一速度傳輸速率的四倍。

AGP_FLAG_NO_8X_RATE

0x00000008L

停用單一速度傳輸速率的八倍。

AGP_FLAG_NO_SBA_ENABLE

0x00000100L

停用 SBA) (側帶定址。

存在兩種類型的設定:全域和平臺特定。 登錄包含位於下列位置的全域專案:

HKLM,"SYSTEM\CurrentControlSet\Control\AGP"

您可以在 filter-driver 服務金鑰的 [參數] 底下找到平臺特定專案。 例如,這些專案存在於登錄中下列位置的假設 AcmeAGP 配接器:

HKLM,"SYSTEM\CurrentControlSet\Services\AcmeAGP\Parameters"

若要停用 DeviceID 為 0x012A (的 DeviceID) 的裝置,以及 VIA Technologies 平臺上0x1AD0 VendorID 的側帶定址,請將 Nuclear3D_Install.HW 區段新增至 INF 檔案。 (如需這類 INF Install 區段的詳細資訊,請參閱 INF DDInstall.HW Section.) 本節包含類似下列的 AddReg 指示詞:

[Nuclear3D_Install.HW] 
AddReg = Nuclear3D_Reg 

接下來,建立下列區段, AddReg 指示詞會指向:

[Nuclear3D_Reg] 
HKLM,"SYSTEM\CurrentControlSet\Services\viaagp\Parameters","1AD0012A",0x00030003,00,01,00,00,00,00,00,00 

上述專案表示下列 HKLM 所識別的字串所識別的子機碼會新增至登錄的HKEY_LOCAL_MACHINE根目錄底下。 「1AD0012A」 字串是專案名稱,前四個字元會撰寫 DeviceID,最後四個字元會為此部分撰寫 VendorID。 專案名稱後面的十六進位數位包含一組旗標,表示專案的資料類型。 最後一個部分是停用側帶定址的專案值。

重要 值專案中的位元組順序與上表中AGP_FLAG_NO_SBA_ENABLE旗標定義的順序相反。

假設您判斷此相同裝置的每個晶片組上的 AGP 4X 已中斷。 若要指出此事實,請將第二個專案新增至 [Nuclear3D_Reg] 區段:

[Nuclear3D_Reg] 
HKLM,"SYSTEM\CurrentControlSet\Services\viaagp\Parameters","1AD0012A",0x00030003,00,01,00,00,00,00,00,00 
HKLM,"SYSTEM\CurrentControlSet\Control\AGP","1AD0012A",0x00030003,04,00,00,00,00,00,00,00 

上述程式碼中的第二個專案表示,下列 HKLM 所識別的字串所識別的子機碼會新增至登錄中的 HKEY_LOCAL_MACHINE 根目錄底下。 如同上一個專案,與這個子機碼相關聯的值名稱是由裝置的 DeviceID 和 VendorID 所組成的字串。 旗標值也相同。 值專案AGP_FLAG_NO_4X_RATE,這會停用 AGP 4X 傳輸速率。 請注意,如同之前,這個值專案中的位元組順序與上表中旗標的值相反。