Windows操作系统中的驱动程序堆栈是什么?
我正在阅读NDIS中的资料,并且不知道它是什么。
答案 0 :(得分:5)
Windows Driver Model(WDM)使用分层方法,其中给定设备由至少两个驱动程序提供服务:总线驱动程序和 功能驱动程序。设备可能还具有可添加值或修改设备行为的过滤器驱动程序。为设备提供服务的驱动程序链称为驱动程序堆栈。
(来自:http://www.microsoft.com/whdc/archive/wdmoverview.mspx)
另请参阅:Device Driver Introduction,特别是“设备驱动程序堆栈”上的section 5。
答案 1 :(得分:1)
如果您熟悉设计模式,那么一个很好的比喻就是装饰器。作为一个例子,我将采用BufferedReader和任何其他类型的阅读器。所以你有你的基本(可能不是非常有效的读者),你想要在运行中而不关心如何使它缓冲并加快性能,所以你创建一个包装底层Reader对象的BufferedReader。
驱动程序堆栈的概念类似 - 你可能有你的低级驱动程序,它会将字符写入设备但是你可以在它上面附加另一个驱动程序,它会混淆它获得的每个字符,基本上你有一个完整的加密堆栈。这样,底层驱动程序对整个发生的“魔法”一无所知,它正在做的正是它所做的 - 将字符写入块设备。