使用UMDF共同安裝程式
注意
如果您的驅動程式僅以 Windows 10 為目標,您就不需要重新分發 WDF 或在您的驅動程式套件中提供 Coinstaller。 若要以 Windows 10 為目標:
- 在 Visual Studio 的 [項目設定] 屬性頁的 [驅動程式設定] ->[目標作系統版本]下,選取 [Windows 10 或更新版本]。 這相當於將下列內容新增至 .vcxproj 檔案:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- 在 INF Manufacturer 區段中,指定 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 檔案。