什么是用WDK编写的Windows内核驱动程序?
与普通应用或服务有什么不同?
答案 0 :(得分:11)
内核驱动程序是针对Windows NT的本机API(而不是Win32子系统的API)编写的程序,它们在底层硬件上以内核模式执行。这意味着驱动程序需要能够处理在进程之间切换虚拟内存上下文,并且需要编写为非常稳定 - 因为内核驱动程序在内核模式下运行,如果一个崩溃,它会导致整个系统崩溃。内核驱动程序不适用于除硬件设备之外的任何东西,因为它们需要管理访问才能安装或启动,并且因为它们会删除内核通常提供给崩溃的程序的安全性 - 即它们自身崩溃而不是整个系统。
长话短说:
答案 1 :(得分:2)
代码在内核模式而不是用户模式下运行。内核模式代码可以直接访问操作系统的内部,硬件等。
您总是编写内核模式模块来实现device drivers。
答案 2 :(得分:0)
内核驱动程序是"应用程序"的低级实现 因为它在内核上下文中运行,所以它能够直接访问内核API和内存。
例如,应该使用内核驱动程序:
如果您想了解更多信息,可以搜索关键字" ring0"用你最喜欢的搜索引擎。
答案 3 :(得分:0)
其他人则从系统级别的角度解释了差异。 如果您使用C ++进行开发,则用户模式开发和内核模式开发之间存在以下差异。