新普京网站-澳门新普京 > 计算机 > 新普京网站:Windows驱动开发入门指引,驱动开发的一些基本概念

新普京网站:Windows驱动开发入门指引,驱动开发的一些基本概念

2019/12/29 22:57

驱动程序不是自然需求与硬件通信,假若急需会见操作系统宗旨数据,往往应用程序没有丰富的权力,这种气象则必要在基本方式下打开拜候。就地点5种驱动类型,小编参谋着微软的驱动例子开垦过 鼠标键盘设备过滤驱动网络过滤软件驱动程序,所以对驱动开荒的明亮仍在浅水区,如在读书进程中开掘成误的地点,还请不吝提出。

Windows设备驱动程序,过去是WDM(Windows Driver Model)框架,编制程序复杂,初读书人难以调控其编制程序
要领。为了消除那后生可畏标题,微软对WDM驱动程序的结构做了改善,形成了崭新的WDF(Windows Driver F
oundation)框架构造。它提供了面向对象和事件驱动的驱动程序开采框架,大大裁减了费用难度。从现
在初阶,理解Windows设备驱动程序的开垦人士,由过去的“职业”职员,将改成“普通”大众。

因专业上类别的内需,小编供给做驱动相关的开采,以前并未有接触过相关的学识,折腾豆蔻梢头段时间下来,作用如需兑现了,也积存了有个别资历和见解,所以在那做番总括。

  在Windows的两样版本上支出的驱动程序 "模型"(模型这几个词语应该来自单词“Mode”。在Win
dowsNT上,驱动程序被叫做KernelDriverMode驱动程序。
笔者以为那几个Mode是指生机勃勃种驱动程序的结商谈
运营的正经八百),有过分裂的称呼。举个例子在Windows9x上的驱动程序,都称之为VXD,而在WindowsNT上的驱动
前后相继被称作KDM驱动程序,Windows98~二零零二以那时候期现身的新模型叫做WDM。
  Windows的驱动模型概念,本来是就驱动程序的行事来讲的。比如WDM驱动,应当要满意提供n种被要
求的性情(如电源管理、即插即用)才被可以称作"WDM驱动"。借使不提供那么些职能,那么统生龙活虎称为NT式驱动。
同等的,WDF驱动也会有它的生机勃勃各个标准。
  不过本书接纳简易的区分方法。将全方位在Windows2004~WindowsVista下能健康运作且未调用WDF相
关的内核API函数的驱动都堪称古板型驱动(包涵NT式和WDM)。倘诺调用了WDF相关的内核API则称之为WD
F驱动。
  请小心:WDF驱动是能够调用守旧型驱动所调用的内核API的,WDF能够视为守旧型的升级版。
  模型的演变并非和操作系统版本的晋级换代齐步走的,而是有二个逐步替代的历程。比方Windows98已
经扶助部分的WDM驱动程序,可是又帮助部分的VXD驱动。而到了Windows二〇〇一,则VXD这种驱动程序完
全被淘汰了。KDM则是WDM的前身。WDM是在KDM的底工上扩大了一些新的风味,拟订了一些新的标准而造
就的。绝大部分函数调用都以通用的。当然,Windows9x连串的根本完全分裂,所以VXD与之相比较,就没
有叁个内核API函数是黄金年代律的。
  故而随着Windows9x的打入冷宫,VXD难逃彻底被淘汰的天意。WindowsNT则发展成了后来的Windows版本
,KDM也成为了WDM而存在下去。当然,微软不会闲着,未来又推出了新的WDF。读者又不得不顾忌:本书
是用WDM写的依旧用WDF写的吧?会不会刚刚学完又被淘汰呢?
  和VXD差异,从KDM到WDM再到WDF是一脉相似的,基本上KDM技师在就学WDM时早已占尽了便于。到
WDF也不例外,WDF与其说是新的驱动开垦模型,还不及说是在原来就有的内核API和数据布局的底子上,又封
装出生龙活虎套让使用者认为更简便、更易用的以Wdf-最初的大器晚成组API。因此,读者大可不必顾忌WDF的演化会
让近期学习古板型驱动的大力半涂而废。一个超人的例子是:大概在1994年到1995年间发布第1个本子的
硬盘上层过滤diskperf的代码,18年过去了,前几日还是得以编写翻译并不奇怪在新式版本的Vista上运转。
  本书对于大大多无法找到WDF实例的章节,都接受了守旧型驱动进行验证。比方磁盘过滤、文件系统
过滤和网络中间层驱动。别的为了精简单出手,对于入门级的多少个例证(串口和键盘)也选用了古板型
使得。可是设想磁盘和虚构网卡(第5章和第11章),使用了WDF版本的例证,请读者注意鉴定区别。

对此驱动开垦的付出教导,微软官方文书档案网址已经提供了很详细的科目文书档案,而且在Github上提供了一文山会海典型的例程源码用于开拓人士参谋。开垦职员在颇负一定的驱动概念知识后,通过参照他事他说加以考查官方例程能够超轻松达成全体一定功效的驱动应用程序。

IRP(IO乞请包)用于win32和驱动程序通信,NT内核有二个组件叫做IO微处理机。IO微电脑担当IRP的散发
,驱动程序里创设好设备而且创办好标识链接后,Win32就足以加载驱动了。而要让贰个驱动可以管理I
RP,必需给驱动加多IRP处理例程。

基于WDF的驱动开拓

WDF的开销须求固守一定的规行矩步,开采实现时要求思虑相当多的细节,由于篇幅有限,小编凭着自个儿的阅世权且稍做列举,后续将写后生可畏篇针对WDF驱动开垦的文章。

  • PNP和电源管理(WDF已经扶助封装了当先二分之一的接口);
  • 种种对象:驱动对象,设备对象,WDF对象,文件对象,队列对象;
  • 使得上下文:有时称为设备扩充,用于存款和储蓄特定设备对象的相关音信的数据布局;
  • 对象的自由:要求构思分歧属性对象释放的机会;
  • 中断央求等级:处理不当易招致蓝屏;
  • 分页与非分页内部存款和储蓄器;
  • 同步锁:回调同步锁、框架等待锁、自旋锁、中断锁等;
  • 日志跟踪记录: 调节和测量试验的必须,可以采纳 WPP(Windows软件追踪预微电脑)或简捷的 DebugPrint 输出
  • 与应用程序的报纸发表:调节代码、I智跑Q,乞求队列

 

   5.  驱动安装

 

WDM 是 Win32设施驱动程序连串布局

  • 配备函数驱动程序
  • 设施筛选器驱动程序
  • 软件驱动程序
  • 澳门新普京 ,文件系统筛选器驱动程序
  • 文件系统驱动程序

WDK(Windows Driver Kit)是生机勃勃种截然集成的驱动程序开采种类,它含有 Windows DDK,用于测试Wi
新普京网站 ,ndows 驱动器的可相信性和安宁性.

style="font-family: 'Microsoft YaHei';">有关软件驱动程序,你的七个选项为 KMDF 和功底格局 Windows NT 驱动程序模型。 使用 KMDF 和水源方式 Windows NT 模型,你能够编写驱动程序,而没有必要考虑即插即用 (PnP卡塔尔 和电源管理。 你能够改为静心于驱动程序的重要任务上。 使用 KMDF,你不要考虑 PnP 和电源,因为框架会为你管理 PnP 和电源。 使用根基方式 Windows NT 模型,你不要思忖 PnP 和电源,因为基本方式服务在与 PnP 和电源管理完全无关的情状中运行。

 

Visual Studio + WDK(Windows Driver Kit)

 

 

WDF驱动程序包罗七个品种,叁个是内核级的,称为KMDF(Kernel-Mode Driver Framework),为SYS
文件;另三个是顾客级的,称为UMDF(User-Mode Driver Framework),为DLL文件。

   2.  驱动类型

IO请求包-IRP

以服务的格局运维

NT式的驱动程序允许以 service 的样式运维, 服务安装的例程能够参考 WDF Sample 中的 Eventdrv 工程,大概参照他事他说加以考察小编写的有关经过互联网监督的驱动例程的开源代码

 

劳动调整管理程序 SCM
接近于linux的医生和护师进度(在linux可能unix操作系统中在系统的辅导的时候会张开相当多劳务,那一个劳动
就称为守护进程)

   3.  开发环境

 

笔者是在Windows平台上付出,使用的付出条件为 Visual Studio 二零一三 + WDK 8.1

 

测量试验蒙受

由此VS集成开辟条件创立 Driver 应用方案后会生成多少个品种,右键属性张开 XXX Package,左边选中 Driver Signing ,在侧面栏 Sign Mode 选择 Test Sign,在 Test Certificate选择 <Create test certificate...>,则在编译时会自动生成测量检验签字证书。

 

 

 驱动分为如下几种类型:

 Windows的驱动开采模型

上一篇:ACDSee清除旧版本残余【新普京网站】 下一篇:新浪考试