1. 前言
最近一段时间,我一直在研究 windows 驱动开发,下面跟大家简单聊聊:
对比 linux,windows 驱动无论是市面上的书籍,视频还是社区,博文以及号主,写的人很少,导致学习曲线直线上升;windows 驱动 从业 人员就更少了;开发环境部署麻烦;驱动安装发布麻烦,需要数字签名。如果是发布到windows update 库里面,还需要做微标认证。为什么还要写?因为在学习的过程中,发现很多东西还是很相同的,如果你是从事linux 开发,可能会有些启发,如果是对windows 驱动开发有需求,可能提供一些不成熟的建议。
接下来进入正文,给大家简单介绍一下windows 驱动。
2. windows 体系架构
2.1 操作系统与应用程序
在许多现代操作系统中,应用程序和操作系统是相互隔离的。操作系统的核心代码运行在特权模式下,即内核模式。而应用程序运行在非特权模式下,即用户模式。
操作系统和应用程序的关心类似于服务器和客户端的关系,这点在windows 平台下显得更加突出:
几个概念:
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
3. windows 驱动框架
3.1 驱动模型:
windows 驱动大致分为这几类:
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驱动开发