2010-07-08 190 views
5

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

+0

哇靠,谷歌在1分钟内它被张贴索引这个网页。这就是好的SEO! http://www.google.com/search?q=driver+stacks&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a – Marko 2010-07-08 02:34:20

+4

@Marko:这绝对是热闹的时候有人发布了一个问题,其中一条评论是“谷歌它”,而这个问题本身已经是谷歌关于相关关键词组合的最高结果。 – 2010-07-08 02:41:01

+0

@Anon - 阿门:) – Marko 2010-07-08 02:42:02

回答

5

司机是......好......司机。

驱动程序堆栈是当驱动程序彼此插入时,每个驱动程序堆栈添加一点点。就像使用显卡驱动程序的OpenGL或DirectX驱动程序一样,后者又使用PCI Express或AGP或任何驱动程序来设置资源并推送像素等。或者您的USB设备的驱动程序当然必须使用USB驱动程序才能进行通信。

在技术上可以有一个由一个司机组成的“堆栈”,但是当人们说“堆栈”时,他们几乎总是意味着多于一个。或者他们只是想听起来像他们知道他们在说什么。

0

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

在windows操作系统中,HW的消息(包含数据)在IRP(IO请求数据包)中建模,该数据包从一侧通过这条线到另一侧,每个驱动程序处理它们并执行其操作。

一个让理解容易的例子是Windows中的一个称为“功能驱动程序”的主要驱动程序,出于某种原因,您希望在其上面放置一个“过滤器驱动程序”来执行一些小的工作,如修改用户的某些数据模式,然后到达您的主要驱动程序。 如果您已有一个不需要或不能修改的工作驱动程序,则可能需要此操作。

看到这个实验在Windows驱动程序堆栈: https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/driver-stacks