Windows的驱动开采模型

因工作上项指标须要,作者需求做驱动相关的开销,在此之前并从未接触过有关的学问,折腾黄金年代段时间下来,作用如需兑现了,也储存了有个别阅世和眼光,所以在这里做番总括。

 Windows的驱动开荒模型

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

Windows的驱动开采模型

测量检验情状下安装驱动前

支付的驱动程序没有进展签订协议只怕使用测量检验签字,则须求在装置上展开测验方式,具体操作为:张开调节台,输入:

bcdedit /set testsigning on

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

如果要关门测量检验情势,则需在决定台输入:

bcdedit /set testsigning off

回车,相符会唤醒:操作成功完成。
重启设备后则会发觉桌面右下角的水印消失。

 

IRP(IO诉求包卡塔 尔(英语:State of Qatar)用于win32和驱动程序通信,NT内核有多少个构件叫做IO管理器。IO微机肩负IRP的散发
,驱动程序里创建好道具而且创办好标志链接后,Win32就足以加载驱动了。而要让二个使得能够管理I
RP,必须给驱动增加IRP管理例程。

本书是作者依照连年的做事学习经验,计算的第一手驱动开采资料。本书越多的是阅世之谈,一些实施中的小开掘小意外,颇为书中内容添彩。

   
在Windows的分裂版本上支付的驱动程序“模型”(模型那一个词语应该来自单词“Mode”。在Windows
NT上,驱动程序被称呼Kernel Driver
Mode驱动程序。小编感到这几个Mode是指大器晚成种驱动程序的布局和周转的正规卡塔 尔(阿拉伯语:قطر‎,有过不一样的称呼。举个例子在Windows
9x上的驱动程序,都称为VXD,而在Windows
NT上的驱动程序被叫做KDM驱动程序,Windows
98~2003以那时代现身的新模型叫做WDM。
   
Windows的驱动模型概念,本来是就驱动程序的行事来说的。譬如WDM驱动,应当要满足提供n种被必要的特点(如电源管理、即插即用卡塔尔国才被称为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的上进会让前边学习守旧型驱动的竭力半涂而废。叁个非凡的例子是:大约在一九九三年到一九九二年间揭橥第2个版本的硬盘上层过滤diskperf的代码,18年过去了,前些天依然能够编写翻译并平常在最新版本的Vista上运维。
   
本书对于好些个不可能找到WDF实例的章节,都接收了古板型驱动举行求证。譬喻磁盘过滤、文件系统过滤和互连网中间层驱动。其余为了从轻易出手,对于入门级的三个例子(串口和键盘卡塔尔国也接受了守旧型驱动。不过虚构磁盘和伪造网卡(第5章和第11章卡塔 尔(阿拉伯语:قطر‎,使用了WDF版本的例证,请读者注意辨别。

Github:

WDK(Windows Driver
Kit卡塔尔国是风流浪漫种截然集成的驱动程序开辟种类,它富含 Windows DDK,用于测试Wi
ndows 驱动器的可相信性和平静性.

532页

 

利用INF文件安装

配备相关的驱动装置能够接收INF举行安装,INF安装文件的编辑撰写提出从
WDF Sample
中找到合适的INF文件进行矫正,假诺您想询问INF的语法,能够仿照效法这里

  • 透过设备微处理器手工业安装

开拓调整台,输入 devmgmt
回车,那是开垦设备微型机的中间意气风发种办法,别的艺术比方右键系统菜单栏Logo均能够展开任务微处理机,只是利用命令行的点子少之又少见,那Ritter别记下一下。找到感兴趣的
设备节点,右键 属性(或更新驱动程序软件卡塔尔国,切换成
驱动程序,能够扩充感兴趣的操作。这里所看见所提供的选项,后续等您熟练了驱动装置的接口后,你会发掘都有对应的接口对应各种作用选项。

  • 透进程序完成自动安装

能够仿效 WDF Sample
中的Driver Install Frameworks API (DIFxAPI) Sample
Device Console (DevCon) Tool
多少个工程,分别提供了不一致调用接口的驱动装置格局,Device Console (DevCon) Tool
生成的devcon.exe
是叁个成效强盛的工具,不仅仅可用于驱动(包卡塔尔国的装置和卸载,还足以收获器具的硬件ID,描述符甚至配备所设置的驱动列表等音信,开辟职员可以从当中豆蔻梢头窥毕竟。

在使得的设置进度中,系统会自动记录安装的日记,在INF目录(路线常常在 C:\Windows\inf下卡塔 尔(英语:State of Qatar)下能够找到七个日志文件
setupapi.app.logSetupapi.dev.log
,查看那八个日志文件有辅助明白驱动装置的施行进程,同一时间也许有益排查驱动装置进度中冒出的不行。

使得的安装涉及到驱动文件的校验(保险驱动文件的完整性和合法性卡塔尔国,驱动的预先级总结(选取最优的驱动去相配当前识别到的新的配备卡塔尔国,驱动的停放目录(Driver
Store卡塔 尔(阿拉伯语:قطر‎等剧情。开拓人士纯熟驱动装置逻辑有援救驱动的支付,感兴趣可以由此此处张开了然。

 

   6.  驱动签名

 

WDF驱动程序蕴涵八个种类,一个是内核级的,称为KMDF(Kernel-Mode Driver
Framework卡塔 尔(英语:State of Qatar),为SYS
文本;另三个是客商级的,称为UMDF(User-Mode
Driver Framework卡塔 尔(英语:State of Qatar),为DLL文件。

ISBN 978-7-121-12555-3

 

IO请求包-IRP

其四个首要内容是有关设备驱动装置(第12~14章卡塔 尔(阿拉伯语:قطر‎。第12章讲系统装置模块,从全体角度演说系统和设施驱动怎么着合作完好地拓宽工作;第13章陈述INF安装文件的细节,蕴含各类域的成效,以致广大设置指令的应用。第14章讲怎么编写驱动装置软件。

驱动程序不是迟早要求与硬件通信,纵然必要寻访操作系统宗旨数据,往往应用程序未有丰裕的权能,这种情状则须求在功底模式下张开拜见。就地点5种驱动类型,作者参谋着微软的驱动例子开采过
鼠标键盘设备过滤驱动
互联网过滤软件驱动程序,所以对驱动开采的掌握仍在浅水区,如在读书进程中窥见有误的地点,还请不吝提议。

劳务调控管理程序 SCM
相通于linux的照料进程(在linux或许unix操作系统中在系统的教导的时候会敞开非常多劳务,这个劳务
就称为守护进度卡塔尔国

驱网宗旨技术丛书

 驱动分为如下几连串型:

windows服务在系统运维是加载,客商需在劳动调节平台开启恐怕关闭服务
Driver 瑟维斯是劳动的三个特例,信守windows服务的说道
加载和谐在NT驱动分为多少个步骤:
1.为NT驱动创设新的服务
2.敞开此项服务
3.闭馆此项服务
4.去除NT驱动创造的劳务
如上四个步骤都以经过SCM组建的劳务来落到实处的。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注