2010-11-23 66 views
3

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

我在阅读材料NDIS,不知道它是什么。

+4

欢迎来到StackOverflow!你在问题中付出的努力越多,你得到的答案的质量和数量就越好。建议澄清并扩展您的问题。你问网络堆栈是什么,驱动程序接口是什么,NDIS是什么,......?你已经看过什么资源,但没有得到满足? – 2010-11-23 08:36:09

回答

5

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

              Layered driver architecture in Windows

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


另见:Device Driver Introduction,具体section 5 “设备驱动程序栈”。

1

如果你熟悉设计模式,一个很好的比喻是装饰者。作为一个例子,我会采用BufferedReader和其他任何类型的阅读器。因此,您有基本的(可能不是非常高效的读取器),并且您不需要关心如何使其缓冲并加速性能,因此您可以创建一个包装底层Reader对象的BufferedReader。

驱动程序堆栈的概念是相似的 - 你可能有你的较低级别的驱动程序,它将写入字符到设备,但你可以附加在另一个驱动程序,它会混杂每个字符,它基本上你有一个完整的加密堆栈。这种方式底层的驱动程序并不知道发生的这个“魔术”的任何事情,它正在完成它所做的 - 将字符写入块设备。

相关问题