драйверы устройств против стека драйверов - PullRequest
6 голосов
/ 08 июля 2010

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

Ответы [ 2 ]

6 голосов
/ 08 июля 2010

Драйвер - это ... ну ... драйвер.

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

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

1 голос
/ 19 октября 2017

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

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

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

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

...