WDM驱动和NT驱动之我见

WDM驱动是NT驱动的进化版。我个人觉得它的主要好处有两个

1.能检测到设备的插入,系统能自动分配设备的硬件信息,如中断号、IO端口、设备物理地址等

2.支持设备的开机状态拔出

之前的NT驱动和硬件关系如下

其实直来直去没什么不好,真的,但是细想有两个问题

1.硬件插入以后,要做的麻烦事太多了,首先分配硬件的中断号,然后指定设备在内存上的映射地址,然后指定IO的端口等等,一切准备妥当,安装驱动程序,驱动程序可能需要修改一些配置信息,这些配置信息有可能是硬编码

2.硬件拔出之后,蓝屏机率特别大,就比如说,我正在使用U盘,假设U盘这个USB设备是NT驱动的,有人不小心碰了一下硬件,蓝屏了。。。

如何解决这个问题呢?

WDM分层驱动模型加入了总线驱动这个概念

1.当设备插入时,系统自动分配了设备的配置信息,并且提供了设备的总线驱动PDO

2.设备拔出时,总线驱动能处理好PnP事件,不会导致系统的异常

相当于说总线驱动作为一种优化的缓冲设备对象

原文地址:https://www.cnblogs.com/zwt1234/p/4618168.html