什么是Windows操作系统中的驱动程序堆栈?

时间:2010-11-23 08:31:12

标签: windows drivers

Windows操作系统中的驱动程序堆栈是什么?

我正在阅读NDIS中的资料,并且不知道它是什么。

2 个答案:

答案 0 :(得分:5)

Windows Driver Model(WDM)使用分层方法,其中给定设备由至少两个驱动程序提供服务:总线驱动程序和 功能驱动程序。设备可能还具有可添加值或修改设备行为的过滤器驱动程序。为设备提供服务的驱动程序链称为驱动程序堆栈

Layered driver architecture in Windows

(来自:http://www.microsoft.com/whdc/archive/wdmoverview.mspx


另请参阅:Device Driver Introduction,特别是“设备驱动程序堆栈”上的section 5

答案 1 :(得分:1)

如果您熟悉设计模式,那么一个很好的比喻就是装饰器。作为一个例子,我将采用BufferedReader和任何其他类型的阅读器。所以你有你的基本(可能不是非常有效的读者),你想要在运行中而不关心如何使它缓冲并加快性能,所以你创建一个包装底层Reader对象的BufferedReader。

驱动程序堆栈的概念类似 - 你可能有你的低级驱动程序,它会将字符写入设备但是你可以在它上面附加另一个驱动程序,它会混淆它获得的每个字符,基本上你有一个完整的加密堆栈。这样,底层驱动程序对整个发生的“魔法”一无所知,它正在做的正是它所做的 - 将字符写入块设备。