Windows驱动开垦入门引导

作者: 关于我们  发布:2019-10-15

   1.  前言

因职业上项目标急需,作者须要做驱动相关的付出,此前并从未接触过有关的学问,折腾一段时间下来,功用如需兑现了,也储存了某个经历和见地,所以在这里做番总计。

对于驱动开拓的开销辅导,微软官方文书档案网址已经提供了很详细的课程文书档案,何况在Github上提供了一多种规范的例程源码用于开垦职员参考。开采职员在颇有一定的驱动概念知识后,通过参谋官方例程能够很轻松完毕全体一定成效的驱动应用程序。

Windows驱动程序入门:

Github:

 

   2.  驱动类型

 驱动分为如下几种类型:

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

驱动程序不是必然要求与硬件通讯,如若必要拜谒操作系统大旨数据,往往应用程序未有丰裕的权杖,这种场馆则必要在根本格局下开展访谈。就地点5种驱动类型,小编参谋着微软的驱动例子开荒过 鼠标键盘设备过滤驱动互连网过滤软件驱动程序,所以对驱动开采的知道仍在浅水区,如在读书进程中开采有误的地点,还请不吝建议。

运用的驱动类型涉及到代码的实现(需没有要求思量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)

内部WDK须要团结手动下载安装

作者是在Windows平台上支付,使用的成本条件为 Visual Studio 二〇一三 + WDK 8.1

 

   4.  实现方式

 

全球彩票历史版本,WDM vs WDF

对于刚同志接触驱动开拓的新手来讲,我不建议选拔WDM(Windows 驱动程序模型)进行支付。这段日子在英特网能找到的有关驱动开垦的华语图书基本上都是围绕WDM情势打开描述的,而至于WDF(Windows 驱动框架)开垦的书籍不多,《竹林溪径——深入显出Window驱动开辟》和《Developing Drivers with the Windows Driver Foundation》算是两本陈诉基于WDF开辟驱动的书籍,两个都能在英特网找到电子书财富。

 

依照WDF的驱动开荒

WDF的开支必要遵照一定的平整,开荒达成时索要考虑非常多的内部情况,由于篇幅有限,小编凭着自身的经历一时半刻稍做列举,后续将写一篇针对WDF驱动开采的稿子。

  • PNP和电源管理(WDF已经扶助封装了比较多的接口);
  • 种种对象:驱动对象,设备对象,WDF对象,文件对象,队列对象;
  • 使得上下文:有时称为设备扩大,用于存款和储蓄特定设备对象的连锁音讯的数据结构;
  • 对象的刑满释放解除劳教:供给思量不相同属性对象释放的空子;
  • 中断央求等第:管理不当易导致蓝屏;
  • 分页与非分页内部存款和储蓄器;
  • 同步锁:回调同步锁、框架等待锁、自旋锁、中断锁等;
  • 日志跟踪记录: 调试的画龙点睛,能够选用 WPP(Windows软件追踪预管理器)或简捷的 DebugPrint 输出
  • 与应用程序的报纸发表:调控代码、IENVISIONQ,央浼队列

 

   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) SampleDevice Console (DevCon) Tool 七个工程,分别提供了不相同调用接口的驱动装置格局,Device Console (DevCon) Tool 生成的devcon.exe 是一个效用强盛的工具,不止可用来驱动(包)的设置和卸载,仍可以够获得器材的硬件ID,描述符以至配备所设置的驱动列表等新闻,开垦人士能够从当中一窥毕竟。

在使得的设置进度中,系统会自动记录安装的日记,在INF目录(路线平时在 C:Windowsinf下)下能够找到五个日志文件 setupapi.app.logSetupapi.dev.log ,查看那七个日志文件有助于掌握驱动装置的实施进度,相同的时间也便于逐个考察驱动装置进程中出现的极其。

使得的设置涉及到驱动文件的校验(保险驱动文件的完整性和合法性),驱动的预先级总结(接纳最优的驱动去匹配当前识别到的新的装置),驱动的停放目录(Driver Store)等剧情。开采人士熟习驱动装置逻辑有助于驱动的开支,感兴趣可以透过此处进展询问。

 

   6.  驱动签名

 

测验碰着

通过VS集成开拓条件成立 Driver 实施方案后会生成七个类型,右键属性打开 XXX Package,左边选中 Driver Signing ,在左边栏 Sign Mode 选择 Test Sign,在 Test Certificate选择 <Create test certificate...>,则在编写翻译时会自动生成测量检验具名证书。

 

生育情形

从Win10初始,驱动文件包不止必要开展扩大验证 (EV) 代码签名,还索要付出到硬件开荒基本仪表盘,具体操作指南能够参见此处,你能够在该文书档案上找到驱动签字所需的别样内容。

 

本文由全球彩票历史版本发布于关于我们,转载请注明出处:Windows驱动开垦入门引导

关键词:

上一篇:没有了
下一篇:创建属于其他Session的进程