Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Windows INF 驅動安裝文件深度解析:結構、語法與實戰範例

編輯:Linux 教學

INF (Information File) 是 Windows 平台上描述硬體裝置資訊、驅動檔案關聯及安裝流程的核心文本文件。許多開發者誤以為 INF 就是驅動程式本身,實際上它更像一份「安裝說明書」,指導 Windows 如何識別裝置、複製檔案、寫入註冊表並完成配置。掌握 INF 結構對驅動開發、系統部署與故障排查至關重要。

INF 核心架構:三大元素

  • Section(節):以 `[SectionName]` 形式劃分功能區塊,名稱不分大小寫,長度限制視 OS 版本而異(Win2K/XP/2003 為 255 字元,Win98 為 28 字元)。同名 Section 會自動合併。
  • Key(鍵)與 Value(值):每節包含多條 `Key=Value1,Value2...` 條目,值之間以逗號分隔。
  • 註解與換行:分號 `;` 開頭為註解;反斜線 `\` 實現長行換行。

關鍵系統定義 Section

Section用途
[Version]版本控制與簽名,如 `Signature="$CHICAGO$"` (Win9x) 或 `Signature="$Windows NT$"` (NT+)
[Strings]集中定義字串常數,便於多語言與維護
[DestinationDirs]定義檔案複製目標路徑,使用 LDID 代碼 (10=Windows, 11=System32...)
[SourceDisksNames]描述來源磁碟序號、標籤、卷標
[SourceDisksFiles]列出來源檔案與磁碟序號對應關係
[DefaultInstall]安裝入口,引用 CopyFiles/AddReg/DelReg 等指令

裝置識別與安裝流程

`[Manufacturer]` 區塊將廠商名稱映射至具體裝置 Section(如 `[Mfg0]`),每行格式:
`%DeviceDesc%=InstallSection, HardwareID`
其中 HardwareID 遵循 `PCI\VEN_XXXX&DEV_XXXX...` 規範,Windows 據此匹配驅動。

實戰範例精讀

[Version]
Signature="$CHICAGO$"
LayoutFile=layout.inf

[Manufacturer]
%MfgName%=Mfg0

[Mfg0]
%DeviceDesc%=YouMark_DDI, PCI\VEN_9999&DEV_9999

[YouMark_DDI]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_9X_AddReg

[YouMark_9X_AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,HelloWDM.sys

[YouMark_Files_Driver]
HelloWDM.sys

[Strings]
MfgName="Microsoft"
DeviceDesc="MyDevice"

此範例展示了從版本聲明、裝置匹配、檔案複製到註冊表寫入的完整鏈路。實際專案中常擴展 `[DefaultInstall.Services]`、`[DDInstall.HW]` 等進階節點以支援服務安裝、電源管理等功能。

避坑指南

  • Section 名稱嚴禁重複定義衝突條目,雖然系統會合併,但邏輯混亂極難除錯。
  • 路徑含空格時務必加雙引號,否則剖析失敗。
  • 驅動簽名策略需與目標 OS 版本一致,否則安裝會被阻擋。

深入理解 INF 機制,能讓驅動部署從「試錯」轉向「精準可控」,是 Windows 驅動工程師的必修內功。

Copyright © Windows教程網 All Rights Reserved