從驅動程式套件移除共同安裝程式
謹慎
從 2023 年 1 月開始,包含共同安裝程式的 驅動程式套件 不再由 硬體開發人員中心入口網站簽署。 如需需求的詳細數據,請參閱 Windows 硬體相容性計劃規格和原則,特別是版本 22H2 原則一節,Device.DevFund.INF.Declarative一節。
此頁面說明共同安裝程式出現在驅動程式套件中的常見原因,並提供機制來執行沒有共同安裝程式的相同工作。
WDF 和 WinUSB 共同安裝程式
任何執行 Windows 10 和更新版本的系統都不需要 WDF 共同安裝程式和 WinUSB 共同安裝程式。 WDF 共同安裝程序引用可以移除,而不需要任何額外的工作。 您可以移除 WinUSB 共安裝程式的參考,並且應該在驅動程式套件的 INF 中使用 Include 和 Needs 指示詞來參考 WinUSB。
安裝顯示使用者介面的軟體
不是在安裝期間啟動應用程式,而是提供使用驅動程式套件 INF
如需詳細資訊,請參閱 將驅動程式與通用 Windows 平臺 (UWP) 應用程式配對。 AddSoftware 指示詞 支援於 Windows 10 版本 1703 及其後的版本。
如需其他詳細資訊,請參閱下方的 安裝相關軟體。
設定裝置易記名稱
INF 檔案
驅動程式套件 INF 可以設定裝置易記名稱,如下所示:
[DDInstall.HW]
AddReg = FriendlyName_AddReg
[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"
執行時期
驅動程式可以透過使用下列其中一個 API 來設置 DEVPKEY_Device_FriendlyName 屬性,在 Start IRP 或 PrepareHardware 階段設置易記名稱:
其他裝置設定/組態
如果可能,驅動程式可以在驅動程式的 啟動 IRP 或 準備硬體 階段中,變更裝置的設定和配置。 在執行時間修改狀態時,驅動程式應遵循 驅動程式套件隔離需求。 這些需求包含驅動程式配置和狀態佈局的指引,協助驅動程式為未來做好準備,使其更能抵禦外部變更、更容易更新以及安裝。
對於無法在驅動程式本身內設定的設定和組態,驅動程式套件也可能包含使用者模式的運行時元件,以改變設定和組態。 這可以是使用者面向的應用程式或更新設定的 Win32 服務。 如需將用戶模式軟體包含在裝置中使用的資訊,請參閱 使用元件 INF 檔案。
如果使用服務之類的持續性元件,請確定其功能是必要的,而且無法以較少的資源密集型方式執行,例如驅動程式套件 INF 或驅動程式本身內。 如需如何確保服務只在相關裝置連線時執行的資訊,請參閱 服務觸發程式、Win32 服務與裝置互動,以及 註冊裝置介面通知。 服務也必須符合最新的需求,例如傳遞 API 驗證程式。
安裝相關聯的軟體
DCH 驅動程式需求的「元件化」部分 引進了稱為 SoftwareComponent 的概念,這是將裝置驅動程式安裝與其相關聯軟體分離的機制。 當 INF 建立軟體元件時,它會自動建立對應至軟體元件的子裝置。 這個子裝置是為了安裝與父裝置相關聯的軟體而存在的。 此軟體可以獨立於主要裝置和驅動程式安裝及更新。
在軟體元件驅動程式套件INF中,建議的安裝軟體機制是使用 AddSoftware 指令。 這會觸發從 Windows 市集下載和安裝軟體。
驅動程式和裝置之間的相依性
裝置啟動/列舉排序相依性
盡可能避免裝置間相依性或啟動順序需求。
針對 ACPI 列舉的裝置,相依性物件 (_DEP) 可用於 ACPI 韌體中,以強制執行裝置啟動順序。 如需詳細資訊,請參閱 裝置管理命名空間。
驅動程式可以回應 IRP_MN_QUERY_DEVICE_RELATIONS IRP,以定義裝置之間的關係,例如移除關係。 如需詳細資訊,請參閱 IRP_MN_QUERY_DEVICE_RELATIONS。
驅動程式套件安裝依賴項
CopyInf 指令 也可以用來在進行與另一個驅動程式相同的安裝 API 呼叫時安裝額外的驅動程式套件。 傳遞至安裝 API 的驅動程式套件會在任何 CopyInf 參考的驅動程式套件之前安裝,但 CopyInf 所參考的驅動程式套件不保證會以任何特定順序安裝。
配置多個廠商的元件捆綁在單一驅動程式套件中
驅動程式套件支援稱為擴充功能 INF 的驅動程式套件 INF 類型。 這是專為增強和擴充「基底」驅動程式套件 INF 功能而設計的 INF 檔案。 擴充可能無法提供裝置的函式驅動程式,但可能會使用任何其他指示或為裝置寫入其他設定。 在驅動程式安裝期間,會使用 驅動程式排名 來選擇單一基底驅動程式套件 INF,為裝置提供功能,然後為裝置選取任何擴充 INF 檔案。 如需詳細資訊,請參閱 使用擴充功能 INF 檔案。
使用擴充功能驅動程式套件 INF 的常見方法是由硬體製造商提供基礎驅動程式套件 INF,OEM 針對系統中使用的部分來創建專屬於該系統的擴充驅動程式套件 INF。
安裝/協調韌體更新
根據要更新的裝置本質而定,建議使用不同的韌體更新機制。 下列每一項都可以用來透過 Windows Update 寄送及安裝韌體更新。
非卸除式
UEFI 韌體更新平台的設計目的是更新無法移除的系統元件,例如系統韌體。 如需詳細資訊,請參閱 UEFI 韌體更新平臺。
可移除的
針對 HID 或 USB 裝置等卸載式裝置,CFU 模型允許安全韌體更新。 如需詳細資訊,請參閱 元件韌體更新。
自定義實作
或者,可以撰寫自定義驅動程式,以根據驅動程式的自行決定更新裝置的韌體。 如需詳細資訊,請參閱 自訂韌體更新驅動程式。