设备驱动程序与驱动程序堆

时间:2010-07-08 02:30:52

标签: driver terminology drivers

驱动程序(设备驱动程序)和驱动程序堆栈有什么区别?我一直听到人们在谈论“驱动程序堆栈”但我以前从未真正听说过这个... 谢谢!

2 个答案:

答案 0 :(得分:6)

司机是......嗯......司机。

驱动程序堆栈是指驱动程序相互插入的时候,每个驱动程序堆栈都会向链中添加一些内容。比如,使用你的视频卡驱动程序的OpenGL或DirectX驱动程序,后者又使用PCI Express或AGP或任何驱动程序来设置资源和推动像素等。或者您的USB设备驱动程序当然必须使用USB驱动程序进行通信。

技术上可以有一个由一个驱动程序组成的“堆栈”,但是当人们说“堆栈”时,它们几乎总是意味着不止一个。或者他们只是试图让他们知道他们在谈论什么。

答案 1 :(得分:1)

驱动程序堆栈是指理论上的垂直链驱动程序,每个驱动程序在从HW到用户代码或从用户代码到HW的行上执行特定作业。

在Windows操作系统中,消息(具有数据)提供给HW进行建模的IRP(IO请求数据包),通过这条线去从一侧到另一和在它的途中每个驱动器处理它们并执行其操作。

一个易于理解的例子是Windows中的一个主要驱动程序,称为“功能驱动程序”,出于某种原因,您希望在其上方放置一个“过滤器驱动程序”来执行一些小工作,例如从用户模式修改某些数据在它到达你的主要司机之前。 如果您已经有一个不想要或不能修改的工作驱动程序,则可能需要这样做。

在Windows驱动程序堆栈上查看此测定: https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/driver-stacks