注意
如果驱动程序仅面向 Windows 10,则无需重新分发 WDF 或在驱动程序包中提供 Coinstaller。 以 Windows 10 为目标:
- 在 Visual Studio 的“项目设置” 属性页的 驱动程序设置->目标 OS 版本下,选择 Windows 10 或更高版本。 这相当于将以下内容添加到.vcxproj文件:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- 在 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 更新分发,则必须选择此选项。
重新分发相关的 MSU 包(例如 umdf-1.11-Win-6.0.msu),以及可以调用该包的安装应用程序。 可以在 WDK 安装的 src\general\wdkinstall 子目录中找到此类应用程序的示例。 如果要编写随设备附带的安装程序,并且必须在使用设备之前运行,则可以选择此选项。 如果选择此选项,INF 文件必须引用配置共同安装程序。
使用 Windows 更新在运行你驱动程序的计算机上安装所需的框架版本。 从框架版本 1.11 开始,UMDF 的新版本通过 Windows 更新分发。 如果选择此选项,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 文件。