共用方式為


從驅動程式套件移除共同安裝程式

警告

從 2023 年 1 月開始,硬體開發人員中心入口網站不再簽署包含共同安裝程式的驅動程式套件。 如需需求的詳細資訊,請參閱 Windows 硬體相容性計劃規格和原則,特別是版本 22H2 原則,Device.DevFund.INF.Declarative 一節

此頁面說明共同安裝程式出現在驅動程式套件中的常見原因,並提供機制來執行沒有共同安裝程式的相同工作。

WDF 和 WinUSB 共同安裝程式

任何執行 Windows 10 和更新版本的系統都不需要 WDF 共同安裝程式和 WinUSB 共同安裝程式。 WDF 共同安裝程序參考可以移除,而不需要任何額外的工作。 您可以移除 WinUSB 共同安裝程序參考,而且應該使用 Include 和 Needs 指示詞從驅動程式套件 INF 參考 WinUSB。

WinUSB 驅動程式套件指引

安裝顯示使用者介面的軟體

而不是在安裝期間啟動應用程式,而是提供從驅動程式套件 INF 的 DDInstall.Software 區段使用 AddSoftware 指示詞安裝的 通用 Windows 平台 應用程式。

如需詳細資訊,請參閱將驅動程式與 通用 Windows 平台 (UWP) 應用程式配對。 Windows 10 版本 1703 和更新版本的 Windows 支援 AddSoftware 指示詞

如需其他詳細數據,請參閱 下方的安裝相關聯軟體

設定裝置易記名稱

INF 檔案

驅動程式套件 INF 可以設定裝置易記名稱,如下所示:

[DDInstall.HW]
AddReg = FriendlyName_AddReg

[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"

執行階段

驅動程式可以在啟動 IRPPrepareHardware 階段期間設定易記名稱,方法是使用下列其中一個 API 來設定 DEVPKEY_Device_FriendlyName 屬性:

其他裝置設定/組態:

可能的話,驅動程式可以在驅動程序啟動 IRP 或 PrepareHardware 階段內變更裝置設定和組態。 在運行時間修改狀態時,驅動程式應遵循 驅動程式套件隔離需求。 這些需求包含驅動程式組態和狀態配置方面的指引,並透過讓驅動程式更能復原外部變更、更容易更新,以及更直接地安裝,以協助日後證明驅動程式。

對於無法在驅動程式本身內設定的設定和元件,驅動程式套件也可能包含改變設定和元件的使用者模式運行時間元件。 這可以是使用者面向的應用程式或更新設定的 Win32 服務。 如需如何包含使用者模式軟體以搭配裝置使用的資訊,請參閱 使用元件 INF 檔案

如果使用服務之類的持續性元件,請確定其功能是必要的,而且無法以較少的資源密集型方式執行,例如驅動程式套件 INF 或驅動程式本身內。 如需如何確保服務只在相關裝置連線時執行的資訊,請參閱 服務觸發程式與裝置互動的 Win32 服務,以及 註冊裝置介面通知。 服務也必須符合最新的需求,例如傳遞 API 驗證程式

安裝相關聯的軟體

DCH 驅動程式需求的「元件化」部分引進了稱為SoftwareComponent的概念,這是將設備驅動器安裝與其相關聯軟體分離的機制。 當 INF 建立軟體元件時,它會自動建立對應至軟體元件的子裝置。 為了安裝與父裝置相關聯的軟體,此子裝置將會存在。 此軟體可以獨立於主要裝置和驅動程式安裝及更新。

在SoftwareComponent驅動程式套件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,以自定義該系統的擴充功能驅動程式套件 INF。

安裝/協調韌體更新

根據要更新的裝置本質而定,建議使用不同的韌體更新機制。 下列每一項都可以用來透過 Windows Update 寄送及安裝韌體更新。

非卸除式

UEFI 韌體更新平台的設計目的是更新無法移除的系統元件,例如系統韌體。 如需詳細資訊,請參閱 UEFI 韌體更新平臺

卸除式

針對 HID 或 USB 裝置等卸載式裝置,CFU 模型允許安全韌體更新。 如需詳細資訊,請參閱 元件韌體更新

自定義實作

或者,可以撰寫自定義驅動程式,以在驅動程式的任意時間更新裝置的韌體。 如需詳細資訊,請參閱 自定義韌體更新驅動程式