1.  前言

因职业上项目标急需,作者需求做驱动相关的付出,以前并从未接触过有关的学问,折腾意气风发段时间下来,功用如需兑现了,也积存了黄金年代部分经验和观念,所以在这里做番总计。

对于驱动开荒的支出引导,微软官方文档网址已经提供了很详细的学科文书档案,况且在Github上提供了意气风发连串规范的例程源码用于开采人士参照他事他说加以考查。开采职员在装有一定的驱动概念知识后,通过参谋官方例程可以十分轻巧完结全部一定作用的驱动应用程序。

笔者需要做驱动相关的开发【澳门新葡8455最新网站】。Windows驱动程序入门:笔者需要做驱动相关的开发【澳门新葡8455最新网站】。

Github:

 

   2.  驱动类型

 驱动分为如下二种等级次序:

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

驱动程序不是自然须要与硬件通信,假若必要拜候操作系统大旨数据,往往应用程序没有丰裕的权位,这种场地则供给在基本形式下开展访谈。就地点5种驱动类型,作者参谋着微软的驱动例子开拓过
鼠标键盘设备过滤驱动
网络过滤软件驱动程序笔者需要做驱动相关的开发【澳门新葡8455最新网站】。,所以对驱动开荒的接头仍在浅水区,如在翻阅进度中发觉有误的地点,还请不吝建议。

运用的驱动类型涉及到代码的兑现(需不须求思考PNP和电源管理卡塔 尔(阿拉伯语:قطر‎和驱动的安装(
NT式驱动程序以 service
的款式运维,其余驱动必要利用通用的INF文件安装卡塔尔国,微软的官方文书档案那样提到:

style=”font-family: ‘Microsoft YaHei’;”>有关软件驱动程序,你的七个接收为
KMDF 和基本方式 Windows NT 驱动程序模型。 使用 KMDF 和底蕴形式 Windows
NT 模型,你可以编写驱动程序,而没有必要思虑即插即用 (PnP) 和电源管理。
你能够改为静心于驱动程序的重要任务上。 使用 KMDF,你不用考虑 PnP
和电源,因为框架会为您管理 PnP 和电源。 使用底子情势 Windows NT
模型,你不用考虑 PnP 和电源,因为基本方式服务在与 PnP
和电源管理完全非亲非故的意况中运营。

   3.  开发环境

 

Visual Studio +
WDK(Windows Driver Kit)

笔者需要做驱动相关的开发【澳门新葡8455最新网站】。内部WDK必要团结手动下载安装

小编是在Windows平台上付出,使用的开支条件为
Visual Studio 2011 + WDK 8.1

 

   4.  实现方式

 

WDM vs WDF

对于刚同志接触驱动开拓的新手来讲,小编不提出选拔WDM(Windows
驱动程序模型卡塔 尔(英语:State of Qatar)进行付出。近日在网络能找到的有关驱动开拓的普通话图书基本上都是围绕WDM形式进行描述的,而关于WDF(Windows
驱动框架卡塔尔开辟的书本十分少,《竹林溪径——深入显出Window驱动开辟》和《Developing
Drivers with the Windows Driver
Foundation》算是两本陈说基于WDF开荒驱动的书本,两个都能在网络找到E-BOOK能源。

 

据他们说WDF的驱动开荒

WDF的开支要求依照一定的法则,开辟落成时索要思考比较多的底细,由于篇幅有限,作者凭着本身的涉世一时半刻稍做列举,后续将写大器晚成篇针对WDF驱动开辟的篇章。

  • PNP和电源管理(WDF已经扶植封装了绝大非常多的接口卡塔尔国;
  • 各类对象:驱动对象,设备对象,WDF对象,文件对象,队列对象;
  • 使得上下文:一时称为设备扩张,用于存款和储蓄特定设备对象的连锁消息的数据结构;
  • 指标的放出:须求考虑分化性别质对象释放的空子;
  • 中断央求级别:管理不当易引致蓝屏;
  • 分页与非分页内部存款和储蓄器;
  • 同步锁:回调同步锁、框架等待锁、自旋锁、中断锁等;
  • 日志追踪记录:
    调节和测试的必不可少,能够应用 WPP(Windows软件追踪预微型机卡塔 尔(英语:State of Qatar)或简捷的
    DebugPrint 输出
  • 与应用程序的简报:调控代码、ICR-VQ,须要队列

 

   5.  驱动安装

 

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

开拓的驱动程序未有进行具名只怕应用测量试验签字,则须求在配备上开启测量试验方式,具体操作为:张开调整台,输入:

bcdedit /set testsigning on

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

设若要关张测量试验格局,则需在支配台输入:

bcdedit /set testsigning off

回车,近似会提醒:操作成功完成。
重启设备后则会意识桌面右下角的水印消失。

 

以劳动的样式运转

NT式的驱动程序允许以 service
的款型运维, 服务安装的例程能够参考 WDF Sample 中的 Eventdrv
工程,只怕参考笔者写的有关经过互连网监督的驱动例程的开源代码

 

选拔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:Windowsinf下卡塔尔国下得以找到多个日志文件
setupapi.app.logSetupapi.dev.log
,查看那多个日志文件有协理精通驱动装置的试行进度,相同的时候也可能有益每一个考察驱动装置进程中冒出的拾叁分。

使得的装置涉及到驱动文件的校验(保险驱动文件的完整性和合法性卡塔尔,驱动的开始时期级总结(选拔最优的驱动去相配当前识别到的新的配备卡塔尔国,驱动的放置目录(Driver
Store卡塔 尔(英语:State of Qatar)等剧情。开辟职员熟稔驱动装置逻辑有扶植驱动的支付,感兴趣能够由此此处开展通晓。

 

   6.  驱动签名

 

测量检验意况

经过VS集成开辟条件创设 Driver
建设方案后会生成多少个门类,右键属性张开 XXX Package,左边选中
Driver Signing ,在侧边栏 Sign Mode 选择 Test Sign,在
Test Certificate选择
<Create test certificate...>,则在编写翻译时会自动生成测试签字证书。

 

澳门新葡8455最新网站,临蓐条件

从Win10起来,驱动文件包不仅仅供给开展扩展验证
(EV)
代码具名,还亟需付出到硬件开辟中央仪表盘,具体操作指南能够参照此处,你能够在该文书档案上找到驱动签名所需的其余内容。