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