Windows Driver Samples源码剖析(一) 综述
来源:互联网 发布:数据库安全测试工具 编辑:程序博客网 时间:2024/06/14 08:40
本系列文章主要剖析Mircrosoft提供的基于WDF框架的“Windows Driver Samples”中的几个Samples,包括:general/echo、general/toaster、general/pcidrv和general/PLX9x5x。而本文主要是作开讲之前的一些介绍,包括:开发环境、下载链接、参考资料和工程简介。
一、开发环境
OS:win10
IDE:VS2015 + wdk10 (下载链接)
注:先装VS2015,并选择自定义安装,需要安装C++模块(默认不安装C++)。
二、源码下载
登陆github,搜索“Windows Driver Samples”或者点以下链接
Download Universal Driver Samples
Windows Driver Framework on Github
注:
1,该Sample是适用于通用Windows平台的,故win10和win7都可用,应用于win7时,编译的时候在工程属性中选择平台即可,可参考我的另一篇博客:点击打开链接。
2,通用Windows驱动程序简介 ,摘要如下:
Windows 10 提供了一组对多个版本的 Windows 均可用的 API 和 DDI 接口。此组接口称为通用 Windows 平台 (UWP, Universal Windows Platform)。
通用 Windows 驱动程序是可在基于 UWP 的版本的 Windows 10(例如 Windows 10 桌面版(家庭版、专业版和企业版)和 Windows 10 移动版)上安装和运行的内核模式或用户模式驱动程序二进制文件。
通用 Windows 驱动程序仅调用属于 UWP 的设备驱动程序接口 (DDI, Device Driver Interface)。这些 DDI 在相应的 MSDN 参考页面上标记为“通用”。
三、学习资料
1,阅读《Win7 设备驱动程序开发》一书,主要章节:
Chapter 2 WDF体系结构
Chapter 6 内核模式驱动程序概述
Chapter 7 即插即用和电源管理
Chapter 8 内核模式的安装和生成
Chapter 9 为KMDF编写程序
Chapter 10 为即插即用和电源管理编写程序
Chapter 12 编写KMDF硬件驱动程序
Chapter 12 编写多个IO队列程序
2,上MSDN网站,WDF Driver Development Guide
四、工程简介
1,Echo
并不控制任何硬件的演示驱动程序。它使用序列I/O队列来序列化针对设备的读写请求,以及显示如何处理请求。
2,Toaster
用于假设性Toaster设备的功能(Function)、过滤器(Filter)和总线(Bus)驱动程序。这个工程中有多个驱动程序,该系列文章主要分析Fuction中的simple和Feature以及Filter。其中Toaster过滤器驱动程序主要演示:修改I/O接口和为应用程序提供接口,以直接控制过滤器。它主要模拟键盘和鼠标过滤器、存储类过滤器驱动和串行设备。
3,PLX9x5x
使用DMA获取数据的典型PCI和EISA设备。它支持内存映射I/O,还支持端口映射I/O以及中断,以便将输入的数据和其他异步事件通知给驱动程序的硬件。
4,PCIDRV
网络适配器和类似的PCI驱动程序。与上面相同,但还支持总线主控DMA通道进行读写操作。
- Windows Driver Samples源码剖析(一) 综述
- Windows Driver Samples剖析之Echo (一)
- Windows Driver Samples剖析之Echo (二)
- Windows Driver Samples剖析之Echo (三)
- Windows Driver Samples剖析之Echo(四)
- Windows Driver Samples剖析之Echo(五)
- Windows Driver Samples剖析之Echo(六)
- Appium-Python-Client 源码剖析(一) driver 的元素查找方法
- 《python 源码剖析》 读后总结(虚拟机综述)
- Azureus源码剖析(一)
- GDAL源码剖析(一)
- GDAL源码剖析(一)
- GDAL源码剖析(一)
- chromium源码剖析(一)
- Chrome 源码剖析(一)
- Atlas源码剖析(一)
- chromium源码剖析(一)
- STL源码剖析(一)
- faster-rcnn cpu实现
- Android socket 编程 实现消息推送(二)
- Python中matplotlib pyplot常用的一些使用方法[Python 3.x]
- 计算机视觉
- 实验六课后作业
- Windows Driver Samples源码剖析(一) 综述
- 多线程语句添加
- 安卓的通知组件
- commons-fileupload下载文件
- 一个textview里设置多种字体颜色,并添加图片
- c# 访问修饰符
- unity3d初学第一天
- go方法重载
- UITableView刷新小技巧