www.301.net:Windows的驱动开辟模型

  • 设施函数驱动程序
  • 配备筛选器驱动程序
  • 软件驱动程序
  • 文件系统筛选器驱动程序
  • 文件系统驱动程序

WDF驱动程序包括四个体系,二个是内核级的,称为KMDF(Kernel-Mode Driver
Framework卡塔尔国,为SYS
文本;另贰个是客商级的,称为UMDF(User-Mode
Driver Framework卡塔尔,为DLL文件。

在Windows平台上开荒软件,编写Windows内核驱动程序是独步天下核准技术员“内功”的。内核驱动程序的代码量平常十分的小,但驱动程序框架中的任何二个函数,以至这几个函数中任何生机勃勃行代码背后都或然饱含着复杂的逻辑,或许隐式的渴求和尽管。纵然驱动程序编写者在纯粹自行定义的函数中,也非得小心地关切一些与情况有关的因素,例如代码是还是不是可被搁浅、是还是不是可重入,大概所引述的内部存款和储蓄器是否被换到到外部存储器。另一面,应用程式开垦中的超级多定义,举个例子地址空间、内部存款和储蓄器处理、非凡管理和二十四线程并发等,在驱动程序开采中恐怕需求有例外的知道方法。别的,常用的C运维库函数基本上不再切合于驱动程序了,驱动程序编写者必需面临贰个全新的底层意况和支撑平台。由此,要编写可科学生运动维的驱动程序,程序猿不仅仅要知道地知道驱动程序所指向的靶子设备或效果与利益(大概包括硬件设备的各个风味卡塔 尔(阿拉伯语:قطر‎,还要调节Windows内核是哪些与驱动程序打交道的,以至功底中过多管制和平运动行机制,极其是内部存款和储蓄器管理、线程调整和现身调节。

   
在Windows的两样版本上支出的驱动程序“模型”(模型那些词语应该来自单词“Mode”。在Windows
NT上,驱动程序被称之为Kernel Driver
Mode驱动程序。作者感到这些Mode是指风流倜傥种驱动程序的构造和平运动行的正规卡塔 尔(英语:State of Qatar),有过差别的名称。比如在Windows
9x上的驱动程序,都可以称作VXD,而在Windows
NT上的驱动程序被叫作KDM驱动程序,Windows
98~2002那些时代现身的新模型叫做WDM。
   
Windows的驱动模型概念,本来是就驱动程序的行为来讲的。譬喻WDM驱动,必须求满意提供n种被供给的风味(如电源处理、即插即用卡塔 尔(英语:State of Qatar)才被称呼WDM驱动。假若不提供那几个作用,那么统豆蔻梢头称为NT式驱动。相符的,WDF驱动也是有它的一应有尽有专门的学问。
    可是本书接纳简便易行的分别方法。将全体在Windows 2004~Windows
Vista下能健康运营且未调用WDF相关的内核API函数的驱动都号称古板型驱动(包蕴NT式和WDM卡塔 尔(阿拉伯语:قطر‎。如果调用了WDF相关的内核API则可以称作WDF驱动。
请留神:WDF驱动是能够调用古板型驱动所调用的内核API的,WDF可以视为守旧型的晋级版。
   
模型的上进并不是和操作系统版本的升官齐步走的,而是有三个日益替代的长河。举个例子Windows
98已经辅助部分的WDM驱动程序,不过又支持部分的VXD驱动。而到了Windows
二零零零,则VXD这种驱动程序完全被淘汰了。KDM则是WDM的前身。WDM是在KDM的根基上平添了生机勃勃部分新的风味,制定了一些新的规范而营造的。绝大多数函数调用都是通用的。当然,Windows
9x种类的基石完全区别,所以VXD与之相比较,就从未多个内核API函数是千篇风流倜傥律的。
    故而随着Windows 9x的打入冷宫,VXD难逃深透被淘汰的天数。Windows
NT则发展成了后来的Windows版本,KDM也化为了WDM而留存下来。当然,微软不会闲着,现在又推出了新的WDF。读者又一定要顾虑:本书是用WDM写的依旧用WDF写的吗?会不会刚刚学完又被淘汰呢?
   
和VXD差别,从KDM到WDM再到WDF是世代相承的,基本上KDM程序员在攻读WDM时生机勃勃度占尽了方便。到WDF也不例外,WDF与其说是新的驱动开拓模型,还比不上说是在原来就有的内核API和数据结构的底工上,又装进出后生可畏套让使用者感觉更简明、更易用的以Wdf-起始的风姿浪漫组API。由此,读者完全没供给担忧WDF的发展览会让前边学习守旧型驱动的奋力废可是返。一个非凡的例子是:大致在1994年到一九九三年间发表第3个版本的硬盘上层过滤diskperf的代码,18年过去了,昨日依旧得以编写翻译并平常在最新版本的Vista上运转。
   
本书对于抢先十分二不也许找到WDF实例的章节,都施用了守旧型驱动举行求证。譬喻磁盘过滤、文件系统过滤和互联网中间层驱动。其他为了从轻易动手,对于入门级的多个例证(串口和键盘卡塔尔也应用了守旧型驱动。可是设想磁盘和虚构网卡(第5章和第11章卡塔 尔(英语:State of Qatar),使用了WDF版本的事例,请读者注意辨别。

 驱动分为如下几连串型:

windows服务在系统运行是加载,客户需在服务调节平台开启可能关闭服务
Driver Service是劳务的三个特例,据守windows服务的构和
加载和睦在NT驱动分为八个步骤:
1.为NT驱动创制新的劳务
2.敞开此项服务
3.闭馆此项服务
4.去除NT驱动创制的劳务
上述八个步骤都以通过SCM营造的劳动来兑现的。

结余的片段章节,分别是有关驱动入门(第1、2章卡塔 尔(阿拉伯语:قطر‎、Windbg调节和测量试验命令(第8章卡塔尔国、内核同步(第9章卡塔尔国等剧情。

Windows的驱动开辟模型

 

 

2011年2月出版

 

测量检验景况下安装驱动前

付出的驱动程序未有开展具名可能采取测量试验具名,则须求在设备上开启测验格局,具体操作为:张开调节台,输入:

bcdedit /set testsigning on

回车,会提示:操作成功完成。
然后重启设备,开机后会在Computer桌面右下方突显有“测量试验形式”字样内容的水印。

生龙活虎旦要关张测验形式,则需在调整台输入:

bcdedit /set testsigning off

回车,相同会唤起:操作成功完成。
重启设备后则会开掘桌面右下角的水印消失。

 

 

竹林蹊径:深入显出Windows驱动开垦

 

 

本书是我按照连年的办事学习资历,总计的直白驱动开拓资料。本书越多的是经历之谈,一些实施中的小开掘小意外,颇为书中内容添彩。

 

 

其多个第风度翩翩内容是有关设备驱动装置(第12~14章卡塔尔国。第12章讲系统设置模块,从完整角度论述系统和装置驱动怎么样合营完好地开展职业;第13章汇报INF安装文件的细节,包含各类域的作用,以致众多设置指令的施用。第14章讲什么编写驱动装置软件。

WDM vs WDF

对Yu Gang接触驱动开辟的生手来说,小编不提议接收WDM(Windows
驱动程序模型卡塔尔国实行开荒。近些日子在网络能找到的有关驱动开采的华语图书基本上都以围绕WDM情势开展描述的,而至于WDF(Windows
驱动框架卡塔尔开垦的书籍十分少,《竹林溪径——深入显出Window驱动开拓》和《Developing
Drivers with the Windows Driver
Foundation》算是两本呈报基于WDF开拓驱动的书本,两个都能在网络找到E-BOOK财富。

 

加上的办法便是再DriverEntry里面对驱动对象DriverObject操作。该参数是贰个指南针,指向驱动对象,
使得对象内部有贰个MajorFunction数组,该数组的品类是
NTSTATUS (*PDRIVER_DISPATCH) (IN PDEVICE_OBJECT DeviceObject,IN PIRP
Irp) 。这是叁个函数指
针,指向每种IRP对于的拍卖例程。最终正是为所有供给管理的IRP完毕对应的例程。

那本书《竹林蹊径——深入显出Windows驱动开垦》是三人小编张佩、马勇和董鉴源的新式力作,他们将团结在试行中储存起来的阅世收拾成册,以期望后读书人能少走弯路,减弱Windows驱动程序开垦的上学之路。那本书根本介绍了KMDF、USB/1394和音频驱动程序的支出,以至设备驱动程序的批发和设置。提出有必然Windows驱动程序开辟根基的读者看黄金年代看那本书,特别是,如果你正计划利用KMDF,也许正在致力与USB/1394或音频驱动程序相关的编制程序专门的工作,那么,那本书就是风度翩翩份宝贵的试行指点了。

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图