首页
社区
课程
招聘
[分享]Windows驱动开发初学者注意事项
2021-8-18 09:19 14271

[分享]Windows驱动开发初学者注意事项

2021-8-18 09:19
14271

最近给学弟他们分析一些蓝屏,代码蓝屏有共性,因代码的不规范引起的,简单总结了一下:

1) 平衡原则: 

  • 创建线程 - 必须销毁 

  • 创建回调 - 必须销毁 

  • 申请内存 - 必须释放   

  • 锁、互斥等句柄 - 必须关闭释放 

  • 链表规范使用 - API初始化 - API释放删除

  • 链表数据 -  卸载之前要清空数据

2) 大量的字符串尽量应用层处理 或者 转换成自定义的二进制数据内核做memcpy对比。

3) 很多场景应该对IRQL做判断,选择是否可以调用API,还是work或者apc等。

4) 涉及多线程数据处理,不要再函数内部直接处理。尽量上锁插入队列链表,起一个线程读取操作。

5) 不要抗拒使用Event,这并不麻烦,这几乎是最有利的方式。

6) 多打印日志,关键部分加入outdebug或者kbprint,设置日志级别。


推荐他们去看《C++并发编程实战第2版》(王高飞翻译版),他们觉着两者并没有关系。个人观点这是个误解,除非import库已经给你做好了接口,内部代码编写本质上不区分语言的,特别是队列设计,线程,锁事件等,设计模式它适用于全部工程性代码。


大佬们也有有对编程经验分享,可以评论区分享。


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2021-8-18 15:33 被一半人生编辑 ,原因:
收藏
点赞6
打赏
分享
最新回复 (12)
雪    币: 5228
活跃值: (11659)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
一半人生 5 2021-8-18 09:21
2
1

并发编程实战 - 王高飞翻译版

最后于 2021-8-18 09:25 被一半人生编辑 ,原因:
上传的附件:
雪    币: 3082
活跃值: (5141)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
0346954 2 2021-8-18 09:31
3
0
感谢分享
雪    币: 1085
活跃值: (2807)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
皮皮虾啊 2021-8-18 09:33
4
0
那么问题来了,怎么上手一个驱动项目
雪    币: 139
活跃值: (8373)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
学技术打豆豆 1 2021-8-18 09:34
5
0
举报大佬上班摸鱼
雪    币: 1445
活跃值: (2044)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
tobeabel 1 2021-8-18 11:11
6
0
那么问题来了,怎么上手一个驱动项目
雪    币: 73
活跃值: (868)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hixhi 2021-8-18 11:34
7
0
皮皮虾啊 那么问题来了,怎么上手一个驱动项目[em_13]
去github上下载一份ms的示例代码,安装vs2019,WDK,打开项目,编译通过,OK,已经学会驱动 开发
雪    币: 1085
活跃值: (2807)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
皮皮虾啊 2021-8-18 20:00
8
0
hixhi [em_13]去github上下载一份ms的示例代码,安装vs2019,WDK,打开项目,编译通过,OK,已经学会驱动 开发[em_13]
懂了,这就去和tp对线
雪    币: 3418
活跃值: (3627)
能力值: ( LV8,RANK:131 )
在线值:
发帖
回帖
粉丝
coneco 2 2021-8-20 01:09
9
0
根据你提出的建议,他们应该是有线程同步的需求。
c++并发的推荐感觉不错,可能重要的是开发者需要有设计模式的意识。
雪    币: 1290
活跃值: (2332)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
灵幻空间 2021-10-15 11:22
10
0
面向Google CV工程师,就OK
雪    币: 219
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_有点老帅 2022-10-17 16:59
11
0
一半人生 并发编程实战 - 王高飞翻译版
过期了 哪位大佬还有
雪    币: 8195
活跃值: (4911)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
大道在我 2023-4-18 23:12
12
0
感谢分享
雪    币: 199
活跃值: (392)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鲨鱼辣椒 2023-5-19 12:50
13
0
第二点,什么理由
游客
登录 | 注册 方可回帖
返回