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

时间:2022-10-18    作者:123    分类: 博客文章


1) 平衡原则:

    创建线程 - 必须销毁 

    创建回调 - 必须销毁 

    申请内存 - 必须释放   

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

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

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

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

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

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

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

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

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

(引用自看雪论坛 作者:一半人生)

标签: windows内核开发