WDM驱动和NT驱动之我见
WDM驱动是NT驱动的进化版。我个人觉得它的主要好处有两个
1.能检测到设备的插入,系统能自动分配设备的硬件信息,如中断号、IO端口、设备物理地址等
2.支持设备的开机状态拔出
之前的NT驱动和硬件关系如下
其实直来直去没什么不好,真的,但是细想有两个问题
1.硬件插入以后,要做的麻烦事太多了,首先分配硬件的中断号,然后指定设备在内存上的映射地址,然后指定IO的端口等等,一切准备妥当,安装驱动程序,驱动程序可能需要修改一些配置信息,这些配置信息有可能是硬编码
2.硬件拔出之后,蓝屏机率特别大,就比如说,我正在使用U盘,假设U盘这个USB设备是NT驱动的,有人不小心碰了一下硬件,蓝屏了。。。
如何解决这个问题呢?
WDM分层驱动模型加入了总线驱动这个概念
1.当设备插入时,系统自动分配了设备的配置信息,并且提供了设备的总线驱动PDO
2.设备拔出时,总线驱动能处理好PnP事件,不会导致系统的异常
相当于说总线驱动作为一种优化的缓冲设备对象