1

上下文

这个问题与RAMDisk Storage Driver Sample相关,但也适用于Toaster Sample Driver,甚至可能适用于任何使用 .INX 文件和 CoInstaller 的驱动程序。

我最初的问题是“为什么我的构建成功时缺少 WdfCoInstallerXXXXX.dll 文件?” 查看ramdisk.inf文件后,我意识到所有的 coinstaller 部分都是空的(替换为分号)。这让我想到了下面的问题。

问题

ramdisk.inx文件的 coinstaller 部分使用$KMDFCOINSTALLEVERSION$变量。根据页面,这应该是一个有效的变量。但是,在成功构建后,所有引用$KMDFCOINSTALLEVERSION$变量的行都会在生成的ramdisk.inf文件中计算为分号。为什么?

附加信息

ramdisk.inx文件中的所有其他变量,例如$KMDFVERSION$$ARCH$,都会被正确评估。

4

1 回答 1

2

原因

事实证明,造成这种情况的原因是我没有安装指定的 KMDF 库版本,即使我最近安装了最新的 WDK 10。根据这个页面,“如果你省略了 KMDF 版本次要,最使用最近的次要版本。”

换句话说,当我只支持 1.7、1.9 和 1.11 时,我尝试使用 KMDF 版本 1.15。您可以检查可再发行目录以查看您支持的版本。我的位于C:\Program Files (x86)\Windows Kits\10\Redist\wdf\x64.

修复

转到Project->Properties->Driver Settings->Driver Model,然后选择适当的 KMDF 版本。之后,重建,您的.INF文件将被正确填充,并且您的驱动程序包将包含适当的 WdfCoInstallerXXXXX.dll。

于 2016-02-19T02:06:51.207 回答