上下文
此问题与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 $ ,都会得到正确评估。
答案 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。