Windows驱动程序开发

时间:2013-01-17 02:13:57

标签: windows driver device-driver msdn ndis

我是Windows驱动程序开发的新手,所以如果我的问题太愚蠢,请耐心等待。好吧,我不确定为什么,正如MSDN建议的那样,以及我认为的方式,主机,例如开发驱动程序,以及目标计算机,例如调试驱动程序,需要两个独立的。为何如此分离?我确实试图通过在主机上部署和调试驱动程序来合并这两个驱动程序,我正在开发一个驱动程序,它似乎没有来自Windows的反对。感谢。

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

内核调试需要两台独立的机器。您无法通过显而易见的原因调试self(调试器和调试对象位于同一内核中并出现死锁)。当然,目标机器可以是虚拟机器。

答案 2 :(得分:0)

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

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