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

浅谈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驱动开发
  本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

新晋卷王,国民好鼠黑爵AJ199鼠标鼠标千千万,到底用哪款最为合适?个人觉得还是要选适合自己的,我使用鼠标的习惯呢就是不要大鼠,中型刚好,左右轮廓对称,双模三模均可,重量偏轻最好,分辨率回报率可驱动调整最好。了解了一从艺妓到明星,莉亚迪桑的传奇人生莉亚迪桑,是一位备受关注的日本写真女星,以清新可爱的形象和性感妩媚的风格而备受追捧。她的名字源于英国小说鲁滨逊漂流记中的女主角,代表着她希望追求自由自在充满活力的人生态度。莉亚迪桑为什么你穿基础款这么土?基础款怎么穿才时髦?你的衣橱有多少基础款?很多时尚博主都说过,衣橱里基础款可以占7080,基础款不过时,并且百搭。然鹅,基础款总是平平无奇,一不小心就会变成要去菜市场买菜的怎么才把基础款穿得好看?今天粉碎数学家们信奉千年的概念,这个理论讲了点啥?蔡司,这是光学领域中一个值得尊敬的名字。这位光学巨人,以无数的最创造了160年的辉煌历史它是历史最悠久的精密光学仪器厂家之一最精密科学的设计最精湛的质量整体规模最大产品种类最多覆盖下一个阶段龙头是它?今天要分享的是拓维信息这里谈谈逻辑1。国产替代的需要参考去年疫情炒作,先是炒辉瑞后炒国产这里浪潮信息服务器产品仍然还是依赖英伟达供货。而拓维信息的服务器完全国产替代,依托华为昇腾芯半导体底部放量反转,低位逻辑芯片四龙头深度分析序言上个月重点关注了光伏系列,现在准备开启第三个系列半导体篇章,其中,半导体和军工系列将作为未来13年重点投资领域。一投资逻辑只要国产替代的逻辑还在,卡脖子问题尚未解决,半导体板块德甲爆冷!欧冠6冠王23倒下6战门兴无胜20场不败4连胜遭终结北京时间2月19日凌晨,德甲联赛第21轮迎来一场焦点战,赛前排名德甲第10位的门兴格拉德巴赫主场对阵排名第1的拜仁慕尼黑,上半场,乌帕梅卡诺犯规被直接红牌罚下,施廷德尔远射破门,阿早起空腹吃几粒花生,坚持15天,这几个好处或不请自来!花生被称为长生果,在我国的产量是比较大的,营养价值丰富,还有大量的微量成分,适当吃有好处。花生的果实在地下,作为农作物,也是很多地区致富的法宝。早起空腹吃几粒花生,坚持15天,这几米糠麦麸重回餐桌,不是因为穷,而是为了健康极目新闻记者廖仕祺绘图刘阳吃糠咽菜字面上的意思是吃谷糠吞野菜,形容生活的贫困与艰辛。如今,人们生活水平大幅提高,吃糠咽菜已成为历史。但如果现在又有人建议你吃些米糠,你的第一反应是什连续熬夜对身体有哪些伤害?应该注意什么?北京安贞医院常务副院长周玉杰劳累激动饱餐寒冷,再加熬夜,这是春节期间每个人每个家庭都可能面临的问题。熬夜会使心血管发病风险增加2倍以上,对诱发冠心病心绞痛血管痉挛心律失常心衰高血压抄书2小茶包2份配方1姜丝绿茶原料生姜或泡姜半块绿茶10克。做法1把泡姜切成丝,或是把生姜清洗干净,带皮切成丝。2姜丝和绿茶放在一起,沸水冲泡,闷3分钟后饮用。功效1调理寒湿水泻急性肠炎。2清肠毒
出境旅游这份安全提示请收好!自今年2月6日国内试点恢复旅行社及在线旅游企业经营中国公民赴有关国家出境团队旅游和机票酒店业务以来,出境游迅速升温。为切实维护出境旅游民众生命财产安全,保障广大游客安逸健康文明出游1996年,中德两国对秦始皇陵核磁扫描,发现一个埋在地宫的秘密历史开讲在这个世界上,从来不缺少奇迹的存在,我国是世界四大文明古国,一些历史悠久的建筑和地点有着非常高的研究价值。1996年,中德两国对秦始皇陵进行了核磁扫描,发现了从来没有披露过中兴通讯裁员!多部门持续缩减优化中兴通讯已启动一轮人员优化,涉及多个部门。据接近中兴通讯的人士透露,中兴已启动一轮人员优化,涉及多个部门,包括无线研究院终端等多部门,并且每个部门都有裁员,仅仅比例不同而已。此外,重游游美舍河湿地公园,听听孩子不同角度的感受2月19日下午,带两娃重游美舍河湿地公园,大宝回去记录下了她不同角度的感受。一开始,错误以为她要写从不同方位和角度所看到的公园,实际上是有关前后两次游公园的对照认知和感受之前在美舍山西内蒙古和陕西等资源省份财政收入暴增26以上,吉林天津等6省份下降中国经济周刊记者孙庭阳北京报道2022年,31个省份一般公共预算收入合计值近4年首次下降,扣除留抵退税因素后,仍有6个省份下降。据31个省份公布的2022年财政预算执行情况和202江西盘点牛!全国15强,增速第一,南昌强,吉安猛,上饶房价涨2月财经新势力江西,是我国风景秀丽的一个中部省份。这里虽然非常低调,但是经济发展也不容小觑。2022年已经过去了,江西的经济发展如何呢?今天,我们就通过经济数据一起来解读一下大美江大众汽车ID。系列在华销量翻番的秘密,原来藏在这里最早向电动化智能化转型的传统汽车品牌里,大众汽车绝对是第一梯队的代表。早在2016年,变革2025战略的发布就标志着大众汽车开启了意义深远的转型,业内规模最大的电动化攻势亦随之启动特上镜166春来农事早不误农时不负春从南到北,各地陆续进入春耕时节广袤田野生机勃发在这播种的最好时节里跟随镜头看看世界各地的春播盛景吧辣椒星球2月19日,村民在贵州省遵义市辣椒智慧产业园智能大棚摆放辣椒过山车与莎士比亚本不矛盾任何事物尤其是新生事物,都难免在获得追捧的同时遭受质疑,前者证明了该事物存在的价值,后者指出了该事物进化的方向。毁誉参半是常态,喜欢沉浸式戏剧和类似文娱项目的人能够从中感受沉浸带来最高检五年来纠正虚假诉讼案件约4万件实质性化解社会矛盾最高人民检察院2月21日举行新闻发布会,介绍五年来检察机关创新加强民事检察工作的主要情况。最高人民检察院副检察长张雪樵指出,民事检察工作聚焦服务大局,营造适应经济高质量发展的法治化男篮到香港遭追捧姚明做临时决定郭艾伦成全队焦点中国男篮2月19日抵达香港,以香港为主场迎战世界杯预选赛最后两个对手。在香港机场有大批球迷接机,而且都挥舞着小国旗场面震撼,郭艾伦成了索要签名合影的焦点人物。姚明无奈之下决定全队集