Windows驱动开发初学者注意事项-游戏逆向网
Windows驱动开发初学者注意事项
此内容为免费资源,请登录后查看
U币0
限时特惠
U币99
全天在线客服
商品完美售后
资金安全保障
网站安全防护
每天资源更新
每天特惠福利
2021-10-12 8.30已完成更新
2021-10-15 8.30已完成更新
2021-10-18 8.30已完成更新
免费资源

Windows驱动开发初学者注意事项

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

1) 平衡原则:

创建线程 – 必须销毁

创建回调 – 必须销毁

申请内存 – 必须释放

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

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

链表数据 – 卸载之前要清空数据

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

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

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

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

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

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

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

THE END
文章不错?点个赞呗。
点赞7856赞赏
分享
评论 抢沙发
慕情雨的头像-游戏逆向网

昵称

取消
昵称表情代码图片