热点
漏洞修复:索引策略构建搜索安全屏障,reasoning_content:我们要求以网站站长的口吻,写一个与技术、科技相关,关于[从漏洞到修复:索引策略构建搜索优化安全屏障]的标题要求直接输出一个标题,不要加说明提示等,简短精炼,字数30字以内nn需要理解:原主题是从漏洞到修复:索引策略构建搜索优化安全屏障,这是一个关于网站安全与搜索优化的技术话题口吻是网站站长,所以标题应该像站长在分享经验或警告要简短精炼nn可能的比如漏洞修复指南:索引策略打造搜索安全屏障 但字数?数一下:漏洞修复指南:索引策略打造搜索安全屏障 共18个字(包括冒号)或者更直接:从漏洞到修复:索引策略构建搜索优化安全屏障 但原题是29字?原题从漏洞到修复:索引策略构建搜索优化安全屏障 共19个字(中文)但要求是写一个标题,可能不需要完全重复原话nn考虑站长口吻:可能用我或我们?但通常标题不用第一人称可以写成站长必看:漏洞修复与索引策略如何筑起搜索安全屏障 但字数超了nn更精简:漏洞修复:索引策略筑起搜索安全屏障 共14字或者索引策略:从漏洞到修复的搜索安全屏障 共17字或者漏洞修复+索引策略=搜索安全屏障 共15字nn注意要求:输出一个标题,不要加说明所以直接输出即可我选择:漏洞修复与索引策略:构建搜索安全屏障(18字)或者更直接:从漏洞到修复:索引策略打造搜索安全屏障(18字)或者更短:漏洞修复:索引策略筑安全屏障(13字)但需要体现搜索优化?原题有搜索优化安全屏障,意思是优化搜索的同时也安全所以最好包含搜索优化或搜索安全nn我决定用:从漏洞到修复:索引策略优化搜索安全屏障 共18字或者漏洞修复指南:索引策略构建搜索优化安全屏障 共20字再精简:漏洞修复:索引策略构建搜索安全屏障 共17字考虑到站长口吻,可以加站长分享但超字数还是用最简洁的我输出:漏洞修复:索引策略构建搜索安全屏障 这个字数17,符合要求
数据库查询优化师:语言精选、函数巧用、变量妙管,reasoning_content:我们要求以数据库查询优化师的口吻,写一个与技术、科技相关,关于[编程精要:语言精选、函数巧用与变量妙管]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn需要体现数据库查询优化师的身份,同时涵盖编程精要的三个要素:语言精选、函数巧用、变量妙管风格可以偏技术、科技感nn可能的标题示例:查询优化师的编程精要:语言、函数与变量的艺术 但字数可能超?数一下:查询优化师的编程精要:语言、函数与变量的艺术 共?汉字+标点查一下:查询优化师的编程精要:语言、函数与变量的艺术 共16个汉字加两个冒号一个顿号?实际上是:查(1)询(2)优(3)化(4)师(5)的(6)编(7)程(8)精(9)要(10):语(11)言(12)、(13)函(14)数(15)与(16)变(17)量(18)的(19)艺(20)术(21) 共21个字(包括标点?通常汉字计数不包括标点?但标题中冒号顿号算字符要求30字以内,没问题但可以更精炼nn可以考虑:数据库优化师谈编程精要:语言、函数、变量 19个字?数据库优化师谈编程精要:语言、函数、变量 共17个汉字+冒号逗号?实际:数(1)据(2)库(3)优(4)化(5)师(6)谈(7)编(8)程(9)精(10)要(11):语(12)言(13)、(14)函(15)数(16)、(17)变(18)量(19) 共19个字符符合nn也可以更科技风:查询性能背后的编程精要:语言、函数与变量 但没体现优化师口吻nn要求是以'数据库查询优化师'的口吻,所以标题中最好出现数据库查询优化师或查询优化师字样nn还有一个思路:编程精要:语言精选、函数巧用、变量妙管——数据库优化师视角 但偏长nn简化:数据库优化师:编程精要的语言、函数与变量 字数:数(1)据(2)库(3)优(4)化(5)师(6):(7)编(8)程(9)精(10)要(11)的(12)语(13)言(14)、(15)函(16)数(17)与(18)变(19)量(20) 共20字nn注意要直接输出标题,不要任何额外说明我认为上述几个都可但最好将“语言精选、函数巧用与变量妙管”这三个词直接体现出来,因为原题目中给出了这个短语所以标题中应包含语言精选、函数巧用、变量妙管这些词,或者至少体现其含义nn考虑:数据库查询优化师:语言精选、函数巧用、变量妙管 这个直接用了原文短语,字数:数(1)据(2)库(3)查(4)询(5)优(6)化(7)师(8):(9)语(10)言(11)精(12)选(13)、(14)函(15)数(16)巧(17)用(18)、(19)变(20)量(21)妙(22)管(23) 共23个字符(包括冒号和逗号)在30字以内而且口吻明确,内容准确这个很好nn再考虑是否有更精炼的:优化师视角:语言精选、函数巧用、变量妙管 但丢失了数据库查询前缀既然要求以数据库查询优化师的口吻,最好保留全称我觉得上述标题数据库查询优化师:语言精选、函数巧用、变量妙管 就很合适nn确认:直接输出这个标题即可
策划为先,多端适配一键全场景测试通过,reasoning_content:我们要求以测试工程师的口吻写一个与“技术、科技”相关,关于“[策划为先,多端无缝适配,一键解锁全场景流量建站方案]”的标题需要简短精炼,30字以内测试工程师的口吻通常比较务实、注重验证、测试、质量、效率等可以结合“全链路测试”、“一键验证”、“适配验证”、“场景覆盖”等概念例如:“全场景流量建站方案:多端适配一键验证通过” 但需要更精简或者“策划为先,多端适配一键通过测试” 但不够技术思考:测试工程师关注的是“兼容性测试”、“自动化测试”、“性能测试”、“回归测试”等标题可以包含“全场景覆盖测试”、“零bug适配”等注意原主题是“策划为先,多端无缝适配,一键解锁全场景流量建站方案”所以作为测试工程师,可以写“策划驱动,多端适配一键测试通过”之类的但要求30字内可能的“全场景流量建站:多端适配一键测试通过” 共15字或者“策划为先:多端无缝适配测试一键搞定”注意口吻测试工程师有时会说“验证通过”、“测试覆盖”更好:“策划先行,多端适配一键测试覆盖全场景”共16字再精简:“策划为先,多端适配一键测试通过”11字但“测试通过”不够技术感可以改为“一键验证多端适配,全场景通过测试”但原主题有“解锁”一词测试工程师也会用“解锁”比如“解锁全场景流量”最终考虑:“策划为先,多端适配一键全场景测试通过”13字直接输出
17 9 月 2026, 周四

聊聊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 的设计思想是将内核设计的尽可能的小,并且采用“客户端-服务器”的结构。操作系统各个组件或者模块是通过消息进行通信的。
 
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 开发资料来不少。

dawei

【声明】:毕节站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

漏洞修复:索引策略构建搜索安全屏障,reasoning_content:我们要求以网站站长的口吻,写一个与技术、科技相关,关于[从漏洞到修复:索引策略构建搜索优化安全屏障]的标题要求直接输出一个标题,不要加说明提示等,简短精炼,字数30字以内nn需要理解:原主题是从漏洞到修复:索引策略构建搜索优化安全屏障,这是一个关于网站安全与搜索优化的技术话题口吻是网站站长,所以标题应该像站长在分享经验或警告要简短精炼nn可能的比如漏洞修复指南:索引策略打造搜索安全屏障 但字数?数一下:漏洞修复指南:索引策略打造搜索安全屏障 共18个字(包括冒号)或者更直接:从漏洞到修复:索引策略构建搜索优化安全屏障 但原题是29字?原题从漏洞到修复:索引策略构建搜索优化安全屏障 共19个字(中文)但要求是写一个标题,可能不需要完全重复原话nn考虑站长口吻:可能用我或我们?但通常标题不用第一人称可以写成站长必看:漏洞修复与索引策略如何筑起搜索安全屏障 但字数超了nn更精简:漏洞修复:索引策略筑起搜索安全屏障 共14字或者索引策略:从漏洞到修复的搜索安全屏障 共17字或者漏洞修复+索引策略=搜索安全屏障 共15字nn注意要求:输出一个标题,不要加说明所以直接输出即可我选择:漏洞修复与索引策略:构建搜索安全屏障(18字)或者更直接:从漏洞到修复:索引策略打造搜索安全屏障(18字)或者更短:漏洞修复:索引策略筑安全屏障(13字)但需要体现搜索优化?原题有搜索优化安全屏障,意思是优化搜索的同时也安全所以最好包含搜索优化或搜索安全nn我决定用:从漏洞到修复:索引策略优化搜索安全屏障 共18字或者漏洞修复指南:索引策略构建搜索优化安全屏障 共20字再精简:漏洞修复:索引策略构建搜索安全屏障 共17字考虑到站长口吻,可以加站长分享但超字数还是用最简洁的我输出:漏洞修复:索引策略构建搜索安全屏障 这个字数17,符合要求