您可以在 Windows 硬體開發人員中心 上建立擴充 INF 檔案的出貨標籤,讓您像其他提交一樣共用和發佈這些標籤。 本文說明封裝、提交及發佈這些套件的程式。 如需如何建立及安裝擴充功能 INF 的詳細資訊,請參閱 使用擴充功能 INF 檔案。
將擴充功能 INF 發佈至 Windows Update 的需求
將擴充功能 INF 發佈至 Windows Update 時,您必須選取出貨標籤上的自動驅動程式升級複選框。 擴充功能 INF 無法發佈為選擇性的原因,是因為它們未列在 裝置管理員 中,讓使用者起始「更新驅動程式」動作。 若要查看這些複選框,您必須先註冊參加驅動程式試用計劃。
注意
若要讓 Windows Update 提供擴充 INF 檔,所有系統都必須至少運行 RS3 2018 年 1 月 3 日—KB4056892(10.0.16299.192)。
提交和發佈擴展 INF 文件
本節說明如何提交和發佈 INF 套件。 如需常見錯誤和常見問題的相關信息,請參閱標示的項目和常見問題集。
重要
Microsoft 建議,應分別為每個擴充功能的 INF 建立一個獨立提交,並為僅包含基礎驅動程式的提交建立另一個單獨提交。 在單一提交中發佈您的基底驅動程式和擴充功能 INF 會導致下列問題:
- 所有出貨標籤都會被合作夥伴中心分類並評估為「擴展驅動程式」。 若要尋找延伸模組的專案,請在 [開發人員中心 搜尋方塊中輸入
@IsExtensionDriver:"True"
。 - 在發佈至 Windows Update 之後,使用者可能需要多次下載您的驅動程序套件:第一次是安裝基礎驅動程序,然後針對 PnP 偵測到的每個適用擴充功能再下載一次。
建立提交套件
基底驅動程式套件
如同以往,使用您的基礎驅動程式和延伸 INFs 開始進行 Hardware Lab Kit (HLK) 測試執行。 HLK 結果會用於所有套件建立步驟。
從 [驅動程式] 資料夾移除擴充功能 INF 範本項目,並將基底驅動程式檔案重新新增至 HLK 套件。
建立並簽署此 HLKx 套件,以建立您的基底驅動程式套件。
注意
基底驅動程式套件必須一律與現有的擴充功能回溯相容。
INF 擴充套件
使用基底驅動程式套件 HLK 測試回合中的相同 HLK 結果,選取 [套件>取代驅動程式]
將 INF 擴充功能與任何參考的二進位檔一起新增至驅動程式的資料夾。 如果您有多個擴展名 INF,則只會新增一個檔案。
建立並簽署這個新的 HLK 套件。 此套件是您的 INF 擴充套件。
針對每個擴充 INFs 重複此操作,每次移除驅動程式資料夾內的所有內容。
將您的套件提交至合作夥伴中心
針對所建立的每個套件建立新的提交,並將其上傳至 硬體開發人員中心。 之後,請為您想要共享或發佈的項目建立出貨標籤。 如需詳細資訊,請參閱 送出新的硬體提交 及 使用出貨標籤管理驅動程式的分發。
ExtensionID
ExtensionID 是您產生的 GUID,用於驅動程式譜系識別和版本設定。 它描述硬體裝置元件或元件系列,並 會自動註冊 至提交它的 SellerID。 此 SellerID 的擁有者負責追蹤 ExtensionID 使用量和對應,類似於 CHID 管理。
例如,當您為新的系統元件建立 ExtensionID 時:
- ExtensionID 的擁有權將會被指定給您的 SellerID。
- 使用元件或元件系列的每個組織系統項目都會共用相同的ExtensionID。
- ExtensionID 在元件的存留期間保持不變。
注意
- 如果您使用未與您的 SellerID 相關聯的 ExtensionID,合作夥伴中心將會拒絕您的提交,並通知您 ExtensionID 已屬於另一個組織:
- 針對指定的裝置,每個獨特的 ExtensionID 值僅會安裝一個擴展 INF。 因此,如果裝置有多個擴充功能 INF,則每個裝置都需要新的 ExtensionID。 這也表示,如果有兩個擴充功能 INF 使用不同的 ExtensionID 對相同裝置進行目標設定,則這兩個擴充功能 INF 都會被套用。 如需詳細資訊,請參閱 使用延伸功能 INF 檔案。
如果您的組織管理另一個組織的專案和提交,請注意下列事項:
- ExtensionID 擁有權會指派給完成提交的 SellerID。
- 使用另一個組織的 SellerID 可讓您使用其 ExtensionID。
- 若要使用組織的 SellerID,您必須為部件或組件系列建立自己的 ExtensionID。
為擴充功能 INF 的初始版本產生新的 ExtensionID(也就是您第一次自定義並提交擴充功能 INF),包括您第一次收到新裝置的新共用寄送標籤。 Visual Studio 在工具 > 建立 GUID 中包含 GUID 建立公用程式,但如果它符合下列登錄格式,則任何在線 GUID 產生工具都應該能夠運作。
如果您要更新已發佈的擴充功能 INF,請將 ExtensionID 保持相同,並遞增 DriverVer 指示詞所指定的版本和/或日期。 驅動程式日期和驅動程式版本(依此順序)用來區分多個具有相同 ExtensionID 的擴展 INF 文件。
發佈擴充功能 INF
若要發佈延伸模組 INF 提交,請遵循將驅動程式發行到 Windows Update 一文中的步驟。 請確定已檢查這兩個自動驅動程式升級選項,而且您的擴充功能 INF 具有指定的目標。
如果您沒有看到這些驅動程式升級選項,您可能需要註冊 驅動程式預覽測試。
所有擴充延伸 INF 檔案都會經過驅動程式測試流程,透過 Windows Update 發佈。 成功飛行後,這些檔案將可用於零售系統。 加入 Windows 測試人員計劃可讓您在此階段更快速地存取驅動程式。
擴充功能 INF 目標設定與排名差異
因為延伸模組是特定裝置的自定義專案,所以必須一律設為目標。 使用擴充功能 INF 目標時,請遵循下列指導方針:
- 如果可能的話,擴充 INF 檔案必須有四部分的硬體識別碼(HWID)。
- 除了具有四部分 HWID 之外,還可以將 CHID 新增至延伸模組 INF 的出貨卷標。
- 對於沒有四部分 HWID 的零件和元件系列,必須有 CHID 目標。
此目標資訊對於透過 Windows Update (WU) 散發期間準確評估擴充功能 INF 至關重要。 WU 評估驅動程式有兩個階段:
- 當 WU 建置套用至指定系統的驅動程式清單時,即為適用性階段。
- 在一個排定階段中,Windows PnP 和 WU 決定從清單中要安裝的驅動程式。
一般而言,關於擴展 INF 的排名和目標,有一些重要的原則:
擴充功能 INF 的 ExtensionID 不會用於適用性, 只是用於譜系和版本設定識別。
WU 會提供每個適用擴充功能識別碼排名最高的擴充功能驅動程式,並由 PnP 安裝。
擴充功能驅動程式會根據日期和版本進行排名,其包含在 DriverVer 指令中。 這同時由 WU 和 PnP 使用。 如需詳細資訊,請參閱 INF 版本區段 和 INF DriverVer 指示詞。
對於擴充驅動程式,PnP 和 WU 不會考慮功能或標識符分數(也就是兩部分與四部分)。
在 WU 上排名延伸模組驅動程式時,不會使用 CHID 資訊(也就是說,您無法「封鎖」具有 CHID 目標的其他擴充驅動程式)。
如需了解在 Windows 作業系統中驅動程式選擇和定位的資訊,請參閱 使用擴充功能 INF 檔案
常見問題集
驅動程式開發
每次更新基底驅動程式時,是否需要變更 ExtensionID?
否,對基底驅動程序進行更新時,您應該保留相同的延伸模組標識符。 ExtensionID 用於版本比較和驅動程式譜系識別。 它不應該在驅動程式系列中改變。
製造業
我們是否可以使用 IHV 提供的擴充功能 INF 和其 ExtensionID 來進行生產用途?
否。 如果您計畫掌控擴充功能的服務層面,那麼在製造階段必須使用您自己的擴充功能 INF 和 ExtensionID。
驅動程式更新
每當基底驅動程式套件更新併發佈時,我們需要將更新的擴充功能 INF 發佈至 Windows Update 嗎?
不,你一定不能這麼做。 基底驅動程式套件必須一律與現有的擴充功能回溯相容。
更新的基底驅動程式發佈並套用至用戶系統時,會發生什麼事?
套用基底驅動程式更新時,會在必要時評估並套用目前安裝的擴充功能 INF。 如果未安裝任何擴充功能 INF,Windows Update 會下載最新的適用版本。
當我們將操作系統更新為最新版本時,是否需要發佈更新的擴充功能 INF 或 ExtensionID?
否,現有的ExtensionID和擴充功能INF會繼續運作。
如果兩個系統自定義相同,兩個系統可以共用相同的擴充功能 INF 嗎?
是。 如果多個系統使用相同的設定,或您想要跨一組更廣泛的裝置自定義設定,一個擴充功能 INF 就已足夠。 將適用的四部分硬體識別碼新增至 INF 檔案。 如需詳細資訊,請參閱 使用延伸功能 INF 檔案。