2010-07-08 2 views
5

В чем разница между драйвером (драйверами устройств) и стеком драйверов? Я постоянно слышу, как люди говорят о «штабелях водителя», но я никогда не слышал об этом раньше ... Спасибо!драйверы устройств против стека драйверов

+0

Святого дерьмо, Google индексируется эта страница в 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

+4

@Marko: Это абсолютно весело, когда кто-то задает вопрос, один из комментариев - «google it», и сам вопрос уже является лучшим результатом для Google для некоторой комбинации релевантных ключевых слов. –

+0

@Anon - Amen :) – Marko

ответ

5

Водитель ... хорошо ... водитель.

Стек драйвера - это когда драйверы подключаются друг к другу, каждый из которых добавляет бит в цепочку. Как, скажем, драйверы OpenGL или DirectX, которые используют драйвер вашей видеокарты, который, в свою очередь, использует PCI Express или AGP или другие драйверы для настройки ресурсов и нажатия пикселей и т. Д. Или ваши драйверы USB-устройств, которые, конечно же, должны использовать USB-драйверы для связи.

Технически возможно иметь «стек», состоящий из одного водителя, но когда люди говорят «стек», они почти всегда означают больше одного. Или они просто пытаются звучать так, как будто они знают, о чем они говорят.

0

Стек драйвера относится к теоретической вертикальной цепочке драйверов, каждая из которых выполняет определенное задание в строке от HW до пользовательского кода или от кода пользователя до HW.

В ОС Windows сообщения (с данными) к HW моделируются в IRP (пакет запроса ввода-вывода), которые проходят через эту линию с одной стороны на другую, и на своем пути каждый драйвер обрабатывает их и выполняет свою работу.

Пример, который упростит понимание, является основным драйвером в Windows под названием «Драйвер функций», и по какой-то причине вы хотите разместить над ним «фильтр-драйвер», чтобы выполнить небольшую работу, например, изменение некоторых данных от пользователя прежде чем он достигнет вашего основного драйвера. Это может потребоваться, если у вас уже есть рабочий драйвер, который вы не хотите или не можете изменить.

Смотрите этот анализ на драйверах Windows, стек: https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/driver-stacks