藉由使用系統定義的平台擴充套件 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 模型區段的項目上,加上 .ntia64、.ntarm、.ntarm64 或 .ntamd64 平台延伸名以指定非 x86 的目標作業系統版本。 在 x86 架構的目標作業系統版本中,INF 檔案不需要這些平台擴展,但強烈建議使用。 在支援平臺延伸模組的其他所有區段上,相同的平臺延伸模塊裝飾或 .nt 平臺延伸模組是選擇性的。
備註
強烈建議您始終在INF 模型一節中透過平台擴充套件為目標作業系統(Windows XP 和更新版本的 Windows)進行裝飾。 針對以 x86 為基礎的硬體平臺,您應該避免使用 .nt 平臺延伸模組,並改用 .ntx86 。
針對支援選擇性平臺延伸模組的區段,Windows 會選取要處理的區段,如下所示:
Windows 會檢查 section-name.nt<架構>區段,如果存在,則會加以處理。 Windows 會檢查正在處理的 INF 檔案中的 .nt<架構> 擴充功能,以及在任何內含的 INF 檔案 (也就是在 Include 條目中包含的任何 INF 檔案) 中的此類擴充功能。
如果 section-name.nt<architecture> 區段不存在,Windows 會檢查 INF 檔案或任何內含 INF 檔案中的 section-name.nt 區段。 如果有,Windows 會處理 section-name.nt 區段。
如果 section-name.nt 段不存在,Windows 會處理不包含平台擴展名的 section-name 段。
對於 .nt 和 .nt<架構>平臺延伸模組是選擇性的區段,建立和維護跨平臺系統 INF 檔案的最簡單方法,不是在這些區段名稱上使用平臺延伸模組,而只會在 INF 模型區段的名稱中包含 .nt<架構>延伸模組。 不過,這假設 INF 檔案不需要複製架構特定版本的檔案,而且安裝設定在架構之間是相同的。 如需跨平臺 INF 的更進階案例,請參閱 將平臺延伸模組與其他區段名稱延伸模組結合。
若要建立如此簡單的跨平臺 INF 檔案,請執行下列動作:
建立有效的 INF 檔案,其中包含所有 INF 檔案中所需的泛型專案,如 INF 檔案的一般指導方針中所述。
包含 INF Manufacturer 區段,其中包含 製造商標識碼 ,指定裝置 的 INF Models 區段 名稱,以及指定 .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包含 DDInstall 區段,其名稱符合 Models 區段所指定的 install-section-name。 例如,AbcModelSection 區段中的 裝置描述 會指定 Abc 裝置的下列 AbcInstallSection 區段。
[AbcInstallSection] ; Install section entries go here. ...包含安裝裝置所需的其他裝置特定區段,但不包含這些區段名稱上的 .nt<架構> 平臺延伸模組。 如需 INF 檔案區段和指示詞的詳細資訊,請參閱 INF 區段的摘要 和 INF 指示詞的摘要。