windows驱动编程学习(1)--------了解驱动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq635968970/article/details/43344495

最近对windows驱动感兴趣,一般学习一般做笔记,由于已经学习了windows编程 所以对驱动编程应该有帮助。

驱动编程和应用编程 有什么不同呢?

1.权限不同:  驱动是在内核ring0下可以执行一些特殊的指令(国王),而应用在ring3这没有这一权限(普通平民)。 ring0环和ring3环是在操作系统还是cpu上?

2.严谨性: 驱动在内核下一步小心就出错导致经常蓝屏. 应用则不经常。

驱动编程是调用什么来实现功能呢?和应用编程什么不同?怎么编写驱动呢? 

学过应用编程的应该知道我们在编写软件调用的是像user32.dll,kernel32.dll这样的动态链接库导出的系统API和编辑器提供的头文件,通过c,c++,汇编等直接在编辑器里写代码 然后编译 运行。

而驱动编程也是调用API和中断,不过它是操作系统内核文件提供的内核API.  我们在编辑器里用c,c++,汇编编写时直接用名称 然后通过ddk或wdk(驱动开发包)来编译及链接 以后生成sys(驱动)。

本质上应用编程和驱动编程的过程都是: 编写代码----->使用开发包编译链接---->运行或装载程序 

推荐可以看看:深入研究windows内部原理系列----------------------------深入研究Windows内部原理系列之七:开机引导过程

怎么安装开发环境呢?学习驱动编程要什么条件呢?

因为我的系统是windows xp所以我选择的是wdk 7600。你可以根据你的条件 自己百度下你的下载地址 安装网上教程安装

http://download.csdn.net/detail/Silitex/2241781

学习条件: 会c语言 有编写简单应用 能懂汇编最好

猜你喜欢

转载自blog.csdn.net/qq635968970/article/details/43344495