当前位置:文档之家› Windows驱动开发培训

Windows驱动开发培训

Windows驱动开发培训
培训流程:
一、基础知识
在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。

1、了解Windows操作系统构造\\ 可以链接进去
2、安装WDK,参考相关文档,熟悉WDK的内容\\ 可以链接进去
二、Windows驱动开发\\ 可以链接进去
一、基础知识
在开始驱动开发之前,您应该知道操作系统原理以及驱动程序是如何在操作系统中进行工作的,了解这些基本原理将有助于您做出正确的设计决策并简化您的开发过程。

1、了解Windows操作系统构造
(1)培训目标
深入了解Windows操作系统的系统结构以及工作原理
(2)培训内容
阅读书籍《深入解析Windows操作系统》的第3、4、6、7、9章,重点关注第九章“I/O系统”
(3)培训任务
①掌握Windows操作系统的系统结构
②理解ISR、IRP、IRQL、DCP等概念的含义
③了解注册表的用法,掌握注册表数据的查看和修改方法
④了解进程和线程的内部机理以及线程的调度策略
⑤了解I/O系统的内容,理解I/O请求以及I/O处理过程
注:以上相关内容,请在一周内完成。

2、安装WDK,参考相关文档,熟悉WDK的内容
(1)培训目标
了解WDK的安装过程,熟悉WDK的编译环境,掌握如何使用WDK的相关帮助文档;了解WDM驱动程序的基本结构
(2)培训内容
①.阅读文档\\10.151.131.12\book\windows\MSWDM.chm,掌握WDM驱动程序的基本结构以及基本的编程技术。

②.参考WDK的帮助文档:WDK documentation ,了解WDK的基本内容
(3)培训任务
①理解分层驱动结构的含义,掌握设备和驱动程序的层次结构
②理解“驱动对象”和“设备对象”的概念
③理解2个基本例程:DriverEntry 和addDevice
④了解IRP的结构以及IRP处理的流程
⑤初步了解I/O的控制操作
注:以上相关内容,请在一周内完成。

二、Windows驱动开发
学习如何基于WDK进行驱动程序的开发
1、培训目标
(1)学会根据WDK开发一个基本的Windows驱动程序和测试程序
(2)学会利用不同的IOCTL方式在内核模式和用户模式之间进行通讯
(3)学会如何在内核模式下和用户模式下访问注册表
(4)利用WinDbg跟踪程序,学会使用WinDbg进行调试
2、培训内容
(1)阅读<WDK path>\src\general\ioctl中的示例代码
(2)build并运行应用程序和驱动程序
(3)安装WinDbg,使用WinDbg进行单步调试、理解代码,参考WDK以及MSWDM.chm,进一步理解Windows驱动的概念,并思考以下问题:
ⅰ驱动程序是如何进行加载和卸载的
ⅱ 应用程序打开驱动文件时做了哪些工作
ⅲ如何在内核模式和用户模式下访问注册表
ⅳ 解释对驱动对象、设备对象、IRP的理解
ⅴ 不同IOCTL方式在进行内核模式-用户模式通讯时有何区别
(4)尝试修改驱动程序和测试程序的代码,完成自己的第一个驱动程序
3、培训任务
修改驱动程序和测试程序,完成以下工作:
(1)ioctlapp.exe从命令行获取字符串:ioctlapp.exe <string>
(2)ioctlapp.exe将获取的字符串写进注册表,位置为:
[HKEY_LOCAL_MACHINE\SOFTWARE\T est] "InputString" = <string>
(3)在内核模式下获取上述注册表中的内容,通过IOCTL调用,将结果返回到用户模式的应用程序中。

(4)在应用程序中,将两组字符串进行比较,返回比较的结果
(5)清除注册表入口,并退出。

详细的工作内容,请参考“Windows_Driver_General _trainin g_project.pdf”
注:以上相关内容,请在七个工作日内完成。

相关主题