调试KMDF驱动程序:“系统找不到指定的文件。”

时间:2014-09-10 23:44:47

标签: visual-c++ visual-studio-2013 visual-studio-debugging kmdf

我正在尝试使用these指令创建一个简单的(软件)驱动程序。

  • 主机为Windows 7 x64,具有完全更新的MSVS Express 2013。
  • 安装了最新的Windows驱动程序工具包,工作正常。
  • VS也成功配置了Windows 7 x64的虚拟机,并严格按照these说明进行配置。

部署过程似乎正确执行,构建日志显示如下:

1>  Catalog generation complete.
1>  <snip>\Win7Debug\Driver Package\driver.cat
1>  Done Adding Additional Store
1>  Successfully signed: <snip>\Win7Debug\Driver Package\driver.cat
1>  
1>  Deploying driver files for project "<snip>\Driver Package\Driver Package.vcxproj".  Deployment may take a few minutes...
2>------ Deploy started: Project: Driver, Configuration: Win7 Debug Win32 ------
2>  Done Adding Additional Store
2>  Successfully signed: <snip>\Win7Debug\Driver.sys
2>  
3>------ Deploy started: Project: Driver Package, Configuration: Win7 Debug Win32 ------
========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Deploy: 2 succeeded, 0 failed, 0 skipped ==========

但是,当Visual Studio尝试启动调试会话时,我收到以下错误消息:

不幸的是,没有提到找不到哪个文件。我已经尝试连接调试器并挂钩kernel32的MessageBox,这样我可以查看调用跟踪/查看它正在寻找哪个文件,但VS不喜欢我附加ollydbg,它会带来很多其他问题。< / p>

我还尝试过Process Monitor来查看它试图访问的文件,但是很难完成它所做的一切。

我错过了什么吗?任何人都能指出我正确的方向吗?

edit1:将主机干净安装为目标机器。完美地遵循指示:完全相同的错误。以前没有人碰到这个吗?

1 个答案:

答案 0 :(得分:-1)

所以答案是Visual Studio默认为Kernel Debugger而不是Remote Debugger。改变这个至少让它部署和安装驱动程序,但仍然导致构建过程永远挂起。

我已经放弃尝试编写KMDF驱动程序,而是选择通过SetWindowsHookEx选择全局挂钩。不是我喜欢的东西,但在Windows中编写内核模式驱动程序的过程在我看来太乏味了。