Windows驱动程序开发前期准备

要开发一个windows驱动程序,须要先掌握C语言相关知识,并理解一些操做系统知识,而后搭建windows driver开发环境,以及准备一些必要的工具。windows

驱动程序与普通应用程序的区别

咱们知道,windows系统程序分为四个运行级别:R0,R1,R2,R3,其中,R3运行应用程序,权限最低;R0运行内核代码,管理硬件设备及运行驱动程序,权限最高,也就是说,一旦咱们的驱动代码被OS内核加载,那么咱们的驱动程序就具有了最高权限,这是一件很开心的事情,也是一件很可怕的事情,开心在于咱们能够实现更高级的功能,可怕的是,一旦产生错误,系统就会蓝屏。R1,R2两个级别被Windows系统弃用,咱们没必要理会。框架

NT、WDM、WDF的区别

对于一个驱动程序开发新手,包括我本身,其实很纠结。首先咱们分不清三者之间的关系和区别,其次,不知道到底该学哪一个。其实三者并没有本质区别,学哪一个都行,当你遇到问题,须要解决问题的时候,就天然掌握和理解了。
NT:没有电源管理和即插即用处处模块
WDM:有电源管理和即插即用,可实现inf文件安装
WDF:WDF框架是为了减小开发者由于自身水平的限制而出现的没必要要蓝屏错误,WDF框架将操做准化,至关于把简答题变成了填空题,下降了出错几率。ide

经常使用工具

Visual Studio 20xx:开发工具
Windows SDK:开发库
WDK:驱动开发库
DebugViewer:调试内核,查看内核打印输出
DriverMonitor:驱动加载工具,省去了手动安装过程,很是方便
PcHunter:windows信息查看软件,比OS自带的任务管理器显示内容更多
DeviceTree:查看设备列表
WinObj:windows对象查看
IDA Pro:反编译工具(暂时用不到)
相关文章
相关标签/搜索