Windows驱动开发入门系列教程
2016-03-28 11:27
253 查看
从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导。前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Windows驱动开发的过程分享一下,也算我的一点总结。
我总结了一下,大概分为这么几部分内容:
第一讲:开发环境与工具篇
主要讲述驱动开发的工具、调试的工具,开发环境的配置等知识,通过本篇的学习,您能配置好Windows驱动开发、编译、调试的基本环境,为下一步的开发打下坚实的基础。
第二讲:我的第一个驱动
为了方便驱动开发的学习,我们通过一个简单的驱动程序来直观的了解一下驱动程序的开发。
第三讲:Windows驱动的结构
本篇主要讲解Windows驱动程序的结构,分别讲解NT驱动和WDM驱动程序的结构。然后呢讲解一下驱动程序中的一些重要的数据结构IRP、DriverObject等。
第四讲:基本编程技术
在了解了Windows驱动程序的基本结构之后,我们就需要学习一下基本的编程技巧--内核函数的使用,主要包括字符串的操作、文件的操作、以及常用内核函数的命名特点
第五讲:Windows内存管理
在内核程序开发过程中,内存管理是一个比较重要的项目。本篇主要讲解Windows的内存管理机制,并且使得大家能够掌握如何在驱动中有效的使用内存。
第六讲:同步
同步主要包括两块,驱动程序的同步和IRP的同步
第七讲:定时器
在驱动程序编程中,经常会用到定时器,这一篇将详细的介绍一下定时器的使用和实现。
第八讲:即插即用Pnp
即插即用是WDM驱动的一个重要特性,这是Windows2000以及后续版本的一个重要功能,为此,我们在这一篇中介绍一下驱动程序中如何实现设备的即插即用。
本篇属于开篇的话题,从下一篇起,我们将走近Windows驱动程序的开发。Step by step 学会Windows驱动的开发。
此文章来自于【http://blog.csdn.net/caperingrabbit/article/details/5280043】
我总结了一下,大概分为这么几部分内容:
第一讲:开发环境与工具篇
主要讲述驱动开发的工具、调试的工具,开发环境的配置等知识,通过本篇的学习,您能配置好Windows驱动开发、编译、调试的基本环境,为下一步的开发打下坚实的基础。
第二讲:我的第一个驱动
为了方便驱动开发的学习,我们通过一个简单的驱动程序来直观的了解一下驱动程序的开发。
第三讲:Windows驱动的结构
本篇主要讲解Windows驱动程序的结构,分别讲解NT驱动和WDM驱动程序的结构。然后呢讲解一下驱动程序中的一些重要的数据结构IRP、DriverObject等。
第四讲:基本编程技术
在了解了Windows驱动程序的基本结构之后,我们就需要学习一下基本的编程技巧--内核函数的使用,主要包括字符串的操作、文件的操作、以及常用内核函数的命名特点
第五讲:Windows内存管理
在内核程序开发过程中,内存管理是一个比较重要的项目。本篇主要讲解Windows的内存管理机制,并且使得大家能够掌握如何在驱动中有效的使用内存。
第六讲:同步
同步主要包括两块,驱动程序的同步和IRP的同步
第七讲:定时器
在驱动程序编程中,经常会用到定时器,这一篇将详细的介绍一下定时器的使用和实现。
第八讲:即插即用Pnp
即插即用是WDM驱动的一个重要特性,这是Windows2000以及后续版本的一个重要功能,为此,我们在这一篇中介绍一下驱动程序中如何实现设备的即插即用。
本篇属于开篇的话题,从下一篇起,我们将走近Windows驱动程序的开发。Step by step 学会Windows驱动的开发。
此文章来自于【http://blog.csdn.net/caperingrabbit/article/details/5280043】
相关文章推荐
- “并发用户数”、“系统用户数”和“同时在线用户数”的计算公式
- 数值与字符串之间的转换:lexcical_cast 和sstream
- centos中mysql无法显示中文问题
- android studio安装过程
- HDU 1103 Flo's Restaurant(模拟+优先队列)
- 根据容器名称 获取容器在宿主机上的 路劲
- Lua中调用C函数
- 卷积神经网络LeNet Convolutional Neural Networks (LeNet)
- 斯坦福大学UFLDL深度学习推荐阅读列表UFLDL Recommended Readings
- C++ 判断磁盘是否为可移动磁盘
- Linux安装Redis服务
- CI配置多数据库访问的方法
- Hadoop MapReduce的模式、算法和用例
- Redis资料汇总专题
- 使用Flexible实现手淘H5页面的终端适配
- 2013年中国数据库大会PPT
- 软件项目管理的理解
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(2)
- python笔记---正则表达式
- 谷歌宣布Android Studio将取代Eclipse