Windows 7驱动开发系列(五)--WDM驱动设计原则
在上一篇说过了WDM模型的介绍之后,我们来继续说一下内核模式驱动程序的设计原则
1.一般来说内核模式的驱动要用C编写,因为这样才有利于针对各个不同的平台进行编译和链接.
2.可配置,不要假定你的驱动程序能申请到某个特定的IO或者某些RESOURCE,在这方面永远等待系统的分派而不要写任何硬代码.
3.做好你的程序可能随时被打断也随时有可能被调度起来.
4.要考虑多核系统的安全性:
这部分比较关键,一定要记得不能让一个CPU在更改的数据,另外一个CPU不要碰.所以当你需要更改一部分关键数据的时候,根据上一条你的程序随时可能被打断,那么这时候就需要加上锁(SPIN LOCK)
5.虽然是用C来编写程序但是也要记得面向对象编程的原则.在WINDOWS 驱动中对象分为三种,文件对象,设备对象和驱动对象.比如利用我们后面会说到的IOMANAGER就可以创建出DEIVCE OBJECT(设备对象),后面的操作都是针对这个设备对象来进行的.这其实是面向对象设备当中比较重要的原则封装.
6最后比较重要的一点就是要能够支持异步的IO.