2

我是 Windows 驱动程序开发的新手,所以如果我的问题太愚蠢,请多多包涵。好吧,我不知道为什么,正如 MSDN 所建议的那样,以及我认为的方式,主机(例如开发驱动程序)和目标计算机(例如调试驱动程序)需要是两个独立的计算机。为什么要这样分离?我确实尝试通过在主机上部署和调试驱动程序来合并这两者,我正在其中开发一个驱动程序,并且它似乎在 Windows 没有反对意见的情况下工作。谢谢。

PS。像这样的来源http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx让我这么想。

4

3 回答 3

2

实际上,当您开发和测试驱动程序时,在许多情况下您会遇到系统崩溃 (BSOD) 并且您的系统可能无法启动。在这种情况下,您的开发 + 调试器环境也将消失/无法访问。

于 2013-01-17T07:19:46.247 回答
0

内核调试需要两台独立的机器。由于明显的原因,您无法调试自我(调试器和被调试者在同一个内核中,并且出现死锁)。当然,目标机器可以是虚拟机器。

于 2013-01-17T07:38:31.950 回答
0

当我们开发驱动程序并对其进行测试时,系统会崩溃并出现蓝屏(称为 BSOD - 蓝屏死机)。这与开发用户模式应用程序不同,它由于内存错误而崩溃。您的驱动程序将作为内核模式应用程序运行,如果由于任何非法内存操作而崩溃,则整个系统都消失了。这不是一个简单的问题要解决,您需要登录到安全模式并从系统中删除驱动程序才能恢复它。

因此,最好使用目标机器,主要是安装驱动程序的 VM 和主机,我们将使用调试器来调试驱动程序。

于 2015-11-27T06:33:48.120 回答