什么是使用WDK编写的Windows内核驱动程序?
与普通应用程序或服务有何不同?
内核驱动程序是针对Windows NT的本机API编写的程序(而不是Win32子系统的API),并在底层硬件上以内核模式执行。这意味着驱动程序需要能够处理在进程之间切换虚拟内存上下文,并且需要编写非常稳定的代码 - 因为内核驱动程序在内核模式下运行,如果其中一个崩溃,它会导致整个系统崩溃。由于内核驱动程序需要管理员访问权限才能安装或启动,并且因为它们消除了内核通常为崩溃的程序提供的安全性 - 即它们会崩溃自己而不是整个系统,所以内核驱动程序只适用于硬件设备。
简而言之:
ZwQueryInformationProcess
才能获取进程名称。应用程序可以调用ZwQueryInformationProcess
、NtQueryInformationProcess
或EnumProcessModules
。 - Billy ONeal内核驱动程序是一个“应用程序”的低级实现。
因为它在内核上下文中运行,所以它具有直接访问内核API和内存的能力。
例如,内核驱动程序应该用于:
如果您想了解更多信息,可以使用您喜欢的搜索引擎搜索关键字“ring0”。
其他人已经解释了系统级别的差异。
如果你正在使用C++进行开发,用户模式开发和内核模式开发有以下区别: