使用 UMDF 共同安裝程式

注意

如果您的驅動程式僅以Windows 10為目標,則不需要轉散發 WDF,或在您的驅動程式套件中提供一個Windows 10。 若要以Windows 10為目標:

  1. 在 Visual Studio 的 [專案設定] 屬性頁的 [驅動程式設定- >目標作業系統版本] 底下,選取[Windows 10或更高版本]。 這相當於將下列內容新增至 .vcxproj 檔案:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
  1. [INF 製造商] 區段中,將 10.0 指定為目標 OS 版本,如下所示:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0

您仍需要參考系統提供的擷取器,如下所示:

[Echo_Install.NT.CoInstallers] 
AddReg=CoInstallers_AddReg

[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll

共同安裝程式會更新儲存在機器上的架構版本,並處理架構特定的 INF 檔案區段。 本主題描述這兩個 UMDF 共同安裝程式,以及當您需要在驅動程式 安裝套件 中包含一個,或參考 INF 檔案中的共同安裝程式時。

取得共同安裝程式套件

在Windows 8.1中,Microsoft 提供的可轉散發架構更新會包含在 Windows 驅動程式套件 (WDK) 的一部分。

如需共同安裝程式目錄內容的完整清單,請參閱 KMDF 驅動程式的安裝元件

除了其他元件之外,共同安裝程式目錄包含名為 WUDFUpdate_MMmmm.dll 的更新共同安裝程式,其中MM是主要版本號碼,而 mmm是次要版本號碼。

更新共同安裝程式會更新電腦上的 UMDF 架構版本。 例如,如果電腦具有 UMDF 1.9 版,且共同安裝套裝程式含 1.11 版,則共同安裝程式會將電腦的架構版本更新為 1.11。

作業系統包含另一個共同安裝程式,稱為組 態共同安裝程式,或WudfCoinstaller.dll。 組態共同安裝程式會處理驅動程式 INF 檔案的 UMDF 特定區段,並對登錄進行任何必要的更新。

從 INF 檔案參考共同安裝程式

如果您要撰寫適用于 Windows 8.1 的 UMDF 2.0 驅動程式,您的 INF 檔案必須參考組態共同安裝程式。 因為組態共同安裝套裝程式含在作業系統中,所以您不需要重新發佈它。

如果您要撰寫以Windows 8.1之前的作業系統為目標的 UMDF 1.11 驅動程式,您必須確定已在使用驅動程式的電腦上安裝 1.11 版架構。 以下是執行此作業的三種方式:

  • 參考 INF 檔案中的更新共同安裝程式,並在 驅動程式安裝套件中包含更新共同安裝程式。 當作業系統安裝驅動程式時,它會執行共同安裝程式。 如果您的驅動程式會透過 Windows Update 散發,您必須選擇此選項。

  • 轉散發相關的 MSU 套件 (例如 umdf-1.11-Win-6.0.msu) ,以及呼叫它的安裝應用程式。 您可以在 WDK 安裝的 src\general\wdkinstall 子目錄中找到這類應用程式的範例。 如果您要撰寫隨附于裝置的安裝程式,而且必須先執行才能使用裝置,則可以選擇此選項。 如果您選擇此選項,您的 INF 檔案必須參考組態共同安裝程式。

  • 依賴 Windows Update,在使用驅動程式的電腦上安裝必要的架構版本。 從架構 1.11 版開始,新版本的 UMDF 會透過 Windows Update 散發。 如果您選擇此選項,您的 INF 檔案必須參考組態共同安裝程式。

在 INF 檔案中,您必須一律參考更新共同安裝程式或組態共同安裝程式。 不過,參考 INF 中的兩個共同安裝程式會導致安裝錯誤。

共同安裝程式的 INF 檔案區段

驅動程式的 INF 檔案必須包含 INF DDInstall.CoInstallers 區段。 如果您重新發佈更新共同安裝程式, 您的 DDInstall.CoInstallers 區段必須同時包含 INF AddReg 指示詞INF CopyFiles 指示詞,如下列範例所示。

[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles

INF AddReg 指示詞會識別建立 CoInstallers32 登錄專案的 INF 區段。

[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"

INF CopyFiles 指示詞會識別將共同安裝程式從安裝裝置複製到系統裝置的 INF 區段。

[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll

如果您轉散發 MSU 套件, 您的 DDInstall.CoInstallers 區段必須指定參考組態共同安裝程式的 AddReg 指示詞。

[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll

驅動程式的 INF 檔案必須一律包含一個 DDInstall.Wdf 區段,共同安裝程式會在安裝之後讀取該區段。 如需驅動程式可以在 DDInstall.Wdf中指定之指示詞的相關資訊,請參閱 在 INF 檔案中指定 WDF 指示詞

您可以使用 INX 檔案和 Stampinf 工具,避免為架構的多個版本建立多個 INF 檔案。 如需 INX 檔案的詳細資訊,請參閱 使用 INX 檔案建立 INF 檔案