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通道进行读写操作。



0 0
原创粉丝点击