范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

浅谈Windows驱动开发

  1. 前言
  最近一段时间,我一直在研究 windows 驱动开发,下面跟大家简单聊聊: 对比 linux,windows 驱动无论是市面上的书籍,视频还是社区,博文以及号主,写的人很少,导致学习曲线直线上升; windows 驱动 从业 人员就更少了; 开发环境部署麻烦; 驱动安装发布麻烦,需要数字签名。如果是发布到windows update 库里面,还需要做微标认证。
  为什么还要写?因为在学习的过程中,发现很多东西还是很相同的,如果你是从事linux 开发,可能会有些启发,如果是对windows 驱动开发有需求,可能提供一些不成熟的建议。
  接下来进入正文,给大家简单介绍一下windows 驱动。 2. windows 体系架构2.1 操作系统与应用程序
  在许多现代操作系统中,应用程序和操作系统是相互隔离的。操作系统的核心代码运行在特权模式下,即内核模式。而应用程序运行在非特权模式下,即用户模式。
  操作系统和应用程序的关心类似于服务器和客户端的关系,这点在windows 平台下显得更加突出:
  几个概念:system 进程:windows 操作系统本身会起一个 system 进程(加载kernel32.dll),有点类似于 linux 下的 init进程,具体细节不展开。 FDO (Function Driver Object):设备功能驱动 FiDO (Filter Driver Object):过滤驱动 PDO (Physical Driver Object):物理设备驱动,真正访问硬件的地方。 IRP (I/O Request Packet),应用程序 想要访问内核数据,必须通过IRP 传递。又叫IRP请求,当应用程序和驱动交互时,发送一个IRP 请求,IRP 会在各层设备驱动之间来回传动与转发。 2.2 操作系统分层
  windows 的设计思想是将内核设计的尽可能的小,并且采用"客户端-服务器"的结构。操作系统各个组件或者模块是通过消息进行通信的。
  嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
  无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
  点击这里找小助理0元领取: 加微信领取资料
  win32 子系统:是最纯正的windows 系统,其他子系统都是通过win32 子系统的接口来实现的,一般很少用到。 Natvie API :在win32 api 基础上加上Nt 前缀,基于版本兼容考虑 系统服务:Native API 从用户模式进入内核模式,调用系统服务。(软中断方式实现, 陷入内核 )执行组件:内核模式下的一组服务函数。 对象管理程序:windows 操作系统提供的服务几乎都是以对象的形式存在的,这里的对象类似于面向对象语言中对象的概论。如驱动对象,设备对象等管理。 进程管理程序:负责创建和终止进程,线程调度是由内核负责的。进程管理程序依赖于其他执行组件。 虚拟内存管理程序:在CPU的内存管理单元(MMU)的协助下,通过某种映射将物理内存和虚拟内存关联起来。 I/O 管理器:负责发起I/O 请求,并管理请求。它由一系列内核模式下的例程所组成,这些例程为用户模式下的进程提供了统一接口。I/O 管理器的目标是使来自用户模式的I/O请求独立于设备。 配置管理程序:配置管理程序,记录所有计算机软,硬件的配置信息。它使用一个被称为注册表的数据库保存这些数据。设备驱动程序根据注册表中的信息进行加载 驱动程序:I/O 管理器接收应用程序后,创建相应的 IRP,并传送至驱动程序进行处理: 根据IRP的请求,直接操作硬件,然后完成此IRP,并返回 根据IRP的请求,转发到更底层的驱动中去,并等待底层驱动的返回。 接受到IRP驱动后,不着急于完成。而是分配新的IRP法定其他驱动程序,并等待返回。 内核:内核被认为是 Windows 操作系统的心脏。Windows 的内核从执行组件分割出来。和执行组件相比,内核是非常小的: 对内核对象的支持。 对线程的调度 对多处理器同步支持。 中断处理函数的支持。 对异常陷阱的支持。 对其他硬件特殊功能的支持。 硬件抽象层:不同的硬件平台,提供不同的硬件抽象层,并对上层提供统一的操作硬件的接口。 2.3 应用程序和驱动
  3. windows 驱动框架
  3.1 驱动模型:
  windows 驱动大致分为这几类:function driver:设备功能驱动 filter driver:设备辅助驱动 software driver:软件模块驱动 bus driver:总线设备驱动 3.2 驱动演变
  NT 模型 :2000以前,不支持 PNP (即插即用设备) WDM 模型:NT 基础上,支持 PNP WDF:WDM的重封装 KMDF:内核模式(sys) UMDF:用户模式(dll) win7 x64 划时代操作系统,开始数字签名了 win10 :双认证签名,也就是说对驱动的安全性要求更高了。 3.3 驱动垂直层次结构
  设备的创建顺序,先创建底层PDO,在创建高层的FDO,即从底层设备到高层设备。 在PDO 和 FDO之间可能有各种过滤驱动。每层设备对象由不同的驱动程序创建,或者说每层的设备对应着不同的驱动程序。 底层设备对象寻找上一层的设备对象,是依靠底层设备对象的AttachedDevice 来寻找的。 3.4 驱动水平层次结构
  同一驱动程序创建出来的设备对象的关系称之为水平层次关系。 每一个设备通过NextDevice可以寻找水平层次的下一个设备对象。 3.5 一个复杂的驱动结构
  4. windows 开发环境搭建4.1 开发环境部署
  以 win10 为例,列出需要安装的东西,详细过程限于篇幅以后更新安装VS2019 安装 Windows SDK:VS 2019 顺带安装 安装 WDK 安装 VMware + Win10 虚拟系统 4.2 常用调试工具windbg:调试内核。WDK 自带,配合串口或者网络调试windows 内核 DebugViewer:查看内核打印 driverMonitor:驱动安装 PCHunter_free:驱动强制卸载,不支持2004版本 devicetree:设备枚举 winobj:查看符号链接 5. windows 驱动学习建议
  有关Windows 驱动开发书籍,博文,教程甚少。如果有这方面需求的可以给以下几个建议:环境搭建:win7 32 + vs2013 即可。不建议 win10 + vs2019,比较新,遇到问题不好解决。其次早期的一些调试工具,win10 最新版本不一定支持。 绕开数字签名:先使用测试模式,安装驱动。否则光安装部署就够折腾的。 入门采用 WDM 驱动模型。市面上将WDM 的书籍和资料相对多些,相对来说,WDF 开发资料来不少。 多看书,windows 驱动不想linux 资料一大把,遇到不懂得,加技术群,啃书本。
  推荐书籍:《Windows 驱动开发技术详解》:已绝版 《竹林蹊径:深入理解windows 驱动开发》:已绝版 《windows 7:设备驱动程序开发 》:wdf 讲的比较多得书
  原文链接:https://mp.weixin.qq.com/s/qGydT22PNfbvhxUT4pNmJw
  转载自:嵌入式微处理器
  原文链接:浅谈Windows驱动开发
  本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

售价20。99万元起,小鹏P7产品力解析,最高续航625km说到20万元级别的新能源车型,可以选择的车型也是比较丰富,无论是一些新势力品牌还是传统品牌,每个车型都有着自己独特的卖点,小编筛选了一款车型小鹏P7,小鹏P7共推出4款车型,售价区个人电脑市场低迷,戴尔宣布裁员6650人(观察者网讯)由于经济和市场环境出现变化,裁员浪潮正席卷美国科技行业。据美国彭博社2月6日报道,由于个人电脑市场表现低迷,美国知名科技公司计算机行业巨头戴尔计划裁员6650人,约占2899元,小米笔记本12。4二合一今日首销搭载2。5K高色域触控屏IT之家2月7日消息,小米笔记本12。4二合一现已在小米商城小米有品京东商城开启预售,将在今日上午十点正式开售,首发到手价2899元!这款机型搭载了高通骁龙8cxGen2处理器2。新能源汽车免征车辆购置税,12366热线你问我来答12366hr热点梳理问答来啦近期市政府发布上海市提信心扩需求稳增长促发展行动方案,其中提到全力落实新能源汽车免征车辆购置税等各项税费优惠政策,为方便大家更好地理解相关知识点,申税羊了个羊大乱斗软件著作权获批,羊了个羊登记多个软件著作权天眼查App显示,2月6日,羊了个羊关联公司北京简游科技有限公司羊了个羊大作战羊了个羊集结羊了个羊大世界羊了个羊后院羊了个羊大乱斗多个软件著作权获登记批准,当前版本号均为V1。0。买对不卖贵值得入手的4款大底拍照手机,荣耀vivo更喜欢谁如果您喜欢,可以点击上面的关注二字。后续会为您提供更多有价值的内容。今天分享,买对不卖贵值得入手的4款大底拍照手机,荣耀vivo更喜欢谁。第一款vivoS16参考价格2949元(1这家公司做人形机器人,比特斯拉早了10年作者董温淑编辑董雨晴1978年,日本早稻田大学的教授加藤一郎在北京举行了一场座无虚席的讲座。这位教授另外的头衔,还包括世界人形机器人之父著名机器人研发机构加藤实验室的创始人。而参加易建联还能打几年?朱总说,不管了,我先续约!二飞恐难有顶薪传闻,朱芳雨做了一件伟大的事,提前续约了易建联。三旬老汉,NBA的詹姆斯在努力打球争取冠军CBA的易建联同样在努力帮助球队,这几年,还能夺冠吗?众所周知,易建联是非常忠于广东队。曾高启强回忆妈妈,点亮我们心中柔软的灯每个人都有妈妈。妈妈是我们来到人世间的第一个亲人。看高启强扮演者张颂文老师的回忆文章,让您感同身受儿童时的成长体验,妈妈病重时的孤独无助痛苦煎熬,妈妈去世时悲痛爆发,以及多年以后的谢琳伍德蕾PORTER杂志封面大片,阳光白衬衫清新舒适谢琳伍德蕾PORTER杂志大片出街,阳光白衬衫,清淡妆容,低调的女演员,清新舒适的居家画风。演艺路稳扎稳打的谢琳因后裔一鸣惊人,之后在星运里的错好景当前分歧者大小谎言等作品中展现不赏梅盈香烹茶吟诗,花乡茶谷的梅花开好了长江日报大武汉客户端2月8日讯(记者叶飞艳通讯员张叶子)2月8日,花乡茶谷景区内,梅花一株株一片片,竞相怒放,已有花海规模。空气里,都是花香浮动,暗香袭人。花乡茶谷为国家AAAA级
中山医学院与南方医科大学,哪个就业比较好?中山医学院前身是中山医科大学,是卫生部直属的11所医科大学之一,在2001年与中山大学合并,现为中山大学的一个院系。中山大学是华南地区影响力最大的985,211,双一流高校。中山医孩子上大学家长要不要送?如果学校比较远,而且又没有和自己一样被录取同一所学校的同学的话,建议还是家长送比较好的,尤其是孩子独自第一次出远门。一个人去一个陌生的地方的话,可能连语言说话的方式都会和别人有所差河南蒙古族自治县你们知道吗?河南蒙古族自治县简称河南县是青海省唯一的蒙古族自治县,俗称河南蒙旗,是中国蒙古族人口比例最高的县。地处青海省东南部,东临甘肃省甘南藏族自治州夏河县碌曲县,南接甘肃省甘南藏族自治州玛你认为中国十大必去的旅游城市是哪几个?1古都西安去西安可以看大雁塔可以看古城墙钟鼓楼,最精彩的是骊山秦始皇陵兵马俑华清池了,西安的羊肉泡西凤酒,然后西安的人文气氛汉唐风情都是绝无仅有的都是最好的历史遗存了2首都北京北京你有做梦梦见彩票号码的经历吗?前几天就梦到一组彩票号码3611121928321梦醒之后记得特别清楚,于是赶紧记下号码,穿着睡衣就去打了十倍。彩票店才刚开门,我连忙让老板给打了票。票拿到手之后特别激动,好像这次事业单位的女职工,工人身份,但一直在财务工作,人社部门如何认定退休年龄?退休年龄是由你的身份决定的。一退休年龄的认定。正常情况下,男性不管什么身份,都是60岁退休。女职工是50岁退休,女干部是55岁退休。现在也存在着女性60岁退休的情况,一是至少是管理你或身边人赌博造成过什么严重的后果?我们公司的真实案例,就发生在2019年的年末,我们公司的财务总监,因为网络赌博,挪用了我们公司账上的350万现金,造成了我们公司现金流断链,没钱进货和付供货商的款项,公司差点倒闭。35岁的人感觉没有清晰的职业方向,除了有几个资格证书,觉得很失败,怎么办?追求职业方向,这本身就是死胡同。拆迁炒房,这才是方向。说的就是我啊,我也迷茫。我也35,注册土木,注册造价,注册建造师,注册咨询师,工作能力是可以的,独立做过很多私活。最近面试了央职场现象现在老板开会讲完后,问大家还有什么问题。很少有人发言。什么情况?这是领导说话的套路,你还真的有话要说啊?那你就入套了。你要真是真开口了,估计领导就在心里骂你没眼力劲,不识相!很少有人发言,这就对了,说明这些人是聪明人。在开会这样的场合,如果你不沈阳为什么不成立盛京大学?作为一个辽宁人,我不知道,提问者为什么这么问。只是因为盛京这个名称好听?亦或是能让人唤起逝去的辉煌?据我所知世界范围大学多以地名命名,并且多一直沿用,因为大学不同于其他机构,校名不华南理工大学分数线为何这么高?这个问题应该从以下几个方面来进行回答首先是华南理工大学的地遇优势。他南理工大学位于我国一线城市广州,具有经济发达,社会文明,思想理念更新比较快的优势,所以有不少学生选择华南理工大学