-
-
[分享]Windows驱动开发初学者注意事项
-
发表于:
2021-8-18 09:19
15969
-
最近给学弟他们分析一些蓝屏,代码蓝屏有共性,因代码的不规范引起的,简单总结了一下:
1) 平衡原则:
创建线程 - 必须销毁
创建回调 - 必须销毁
申请内存 - 必须释放
锁、互斥等句柄 - 必须关闭释放
链表规范使用 - API初始化 - API释放删除
链表数据 - 卸载之前要清空数据
2) 大量的字符串尽量应用层处理 或者 转换成自定义的二进制数据内核做memcpy对比。
3) 很多场景应该对IRQL做判断,选择是否可以调用API,还是work或者apc等。
4) 涉及多线程数据处理,不要再函数内部直接处理。尽量上锁插入队列链表,起一个线程读取操作。
5) 不要抗拒使用Event,这并不麻烦,这几乎是最有利的方式。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-8-18 15:33
被一半人生编辑
,原因: