为什么$ KMDFCOINSTALLERVERSION $评估为分号?

时间:2016-02-19 02:06:51

标签: visual-studio driver inf kmdf

上下文

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

我原来的问题是“为什么我的构建成功时我错过了WdfCoInstallerXXXXX.dll文件?”在查看 ramdisk.inf 文件后,我意识到所有coinstaller部分都是空的(用分号代替)。这引出了我的问题。

问题

ramdisk.inx 文件的coinstaller部分使用 $ KMDFCOINSTALLERVERSION $ 变量。根据{{​​3}}页面,这应该是一个有效的变量。但是,成功构建后,引用 $ KMDFCOINSTALLERVERSION $ 变量的所有行将在生成的 ramdisk.inf 文件中评估为分号。为什么呢?

其他信息

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

1 个答案:

答案 0 :(得分:1)

原因

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

换句话说,当我只支持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。