為多個平臺和作業系統建立 INF 檔案
藉由使用系統定義的平臺延伸至 INF 檔案區段和指示詞,您可以建立單一 INF 檔案以進行跨平臺安裝。 擴充功能可讓您建立 裝飾區 段名稱,以指定哪些區段和指示詞與每個目標平臺和作業系統相關。 例如,您可以建立一個 INF 檔案,該檔案僅安裝在 x64 型系統上、僅限 Itanium 型系統上、僅 x86 型系統上,或 Windows 2000 和更新版本 Windows 支援的所有系統上。
下表摘要說明系統支援的平臺延伸模組,這些延伸模組可以新增至支援延伸模組的區段名稱。
平臺延伸模組 | 用途 |
---|---|
.ntamd64 |
本節包含在 Windows XP 和更新版本支援的 x64 型系統上安裝裝置或一組裝置相容模型的指示。 |
.ntia64 |
本節包含在 Windows XP 和更新版本支援的 Itanium 型系統上安裝裝置或一組裝置相容模型的指示。 |
.ntx86 |
本節包含在 Windows XP 和更新版本支援的 x86 型系統上安裝裝置或一組裝置相容模型的指示。 |
.ntarm |
本節包含在Windows 8和更新版本支援的 Arm 系統上安裝裝置或一組裝置相容模型的指示。 |
.ntarm64 |
區段包含在 Windows 10 1709 版和更新版本支援的 Arm64 型系統上安裝裝置或一組裝置相容模型的指示。 |
。Nt |
在 Windows Server 2003 SP1 之前的 Windows 版本中,本節包含在作業系統支援的所有系統上安裝裝置或一組裝置相容模型的指示。 從 Windows Server 2003 SP1 開始,本節包含在作業系統支援的 x86 系統上安裝裝置或一組裝置相容模型的指示。 |
(沒有平臺延伸模組) |
在 Windows Server 2003 SP1 之前的 Windows 版本中,本節包含在作業系統支援的所有系統上安裝裝置或一組裝置相容模型的指示。 從 Windows Server 2003 SP1 開始,本節包含在作業系統支援的 x86 系統上安裝裝置或一組裝置相容模型的指示。 |
在 Windows Server 2003 Service Pack 1 (SP1) 和更新版本上,INF 檔案必須在 INF Models 區段中使用.ntia64、.ntarm、.ntarm64或.ntamd64平臺延伸模組來裝飾專案,以指定非 x86 目標作業系統版本。 X86 型目標作業系統版本的 INF 檔案中不需要這些平臺延伸模組,但強烈建議使用。 在支援平臺延伸模組的所有其他區段上,相同的平臺延伸模組裝飾或 .nt 平臺延伸模組是選擇性的。
注意
強烈建議您一律使用 Windows XP 和更新版本 Windows 目標作業系統的平臺延伸模組裝飾 INF 模型一節 中的專案。 針對 x86 型硬體平臺,您應該避免使用 .nt 平臺延伸模組,並改用 .ntx86 。
對於支援選擇性平臺延伸模組的區段,Windows 會選取要處理的區段,如下所示:
Windows 會檢查section-name.nt< 架構 >區段,如果存在,則會處理它。 Windows 會檢查正在處理之 INF 檔案中的.nt< 架構 >副檔名,以及任何內含 INF 檔案 (,也就是包含專案的任何 INF 檔案) 。
如果section-name.nt< 架構 >區段不存在,Windows 會檢查 INF 檔案或任何內含 INF 檔案中的section-name.nt區段。 如果有的話,Windows 會處理section-name.nt區段。
如果section-name.nt區段不存在,Windows 會處理不包含平臺延伸模組的區段名稱區段。
對於.nt和.nt< 架構 >平臺延伸模組是選擇性的區段,建立和維護跨平臺系統 INF 檔案的最簡單方法,不是在這些區段名稱上使用平臺延伸模組,而且只在INF Models 區段的名稱中包含.nt< 架構 >延伸模組。 不過,這會假設 INF 檔案不需要複製架構特定版本的檔案,而且在架構之間安裝設定相同。 如需跨平臺 INF 的進階案例,請參閱 將平臺延伸模組與其他區段名稱延伸模組結合。
若要建立這類簡單的跨平臺 INF 檔案,請執行下列動作:
建立有效的 INF 檔案,其中包含所有 INF 檔案中所需的泛型專案,如 INF 檔案的一般指導方針中所述。
包含包含製造商識別碼的 INF製造商區段,指定裝置的 INF 模型區段名稱,以及指定.nt< 架構 >平臺延伸模組。 例如,下列Manufacturer區段會針對 Abc 裝置和.nt< 架構 >平臺延伸模組指定 「AbcModelSection」 的 INF Models區段名稱。
[Manufacturer] ; The manufacturer-identifier for the Abc device. %ManufacturerName%=AbcModelSection,nt<architecture>
包含Models.nt< 架構 >區段,其名稱符合Manufacturer區段中製造商識別碼所指定的Models區段名稱。 例如,Abc 裝置的下列 AbcModelSection.nt < 架構 >區段包含一個裝置描述,指定 「AbcInstallSection」 的install-section-name。
[AbcModelSection.nt<architecture>] %AbcDeviceName%=AbcInstallSection,Abc-hw-id
包含名稱符合Models區段所指定的install-section-name的DDInstall區段。 例如,AbcModelSection 區段中的 裝置描述 會指定 Abc 裝置的下列 AbcInstallSection 區段。
[AbcInstallSection] ; Install section entries go here. ...
包含安裝裝置所需的其他裝置特定區段,但不包含這些區段名稱上的.nt< 架構 >平臺延伸模組。 如需 INF 檔案區段和指示詞的詳細資訊,請參閱 INF 區段的摘要 和 INF 指示詞的摘要。