Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует два основных типа драйверов Microsoft Windows:
Драйверы пользовательского режима выполняются в пользовательском режиме, и обычно они предоставляют интерфейс между драйверами win32 и драйверами режима ядра или другими компонентами операционной системы.
Например, все драйверы принтера выполняются в пользовательском режиме. Дополнительные сведения о компонентах драйвера принтера см. в разделе "Общие сведения о печати".
Драйверы режима ядра выполняются в режиме ядра в рамках исполнительного руководства, который состоит из компонентов операционной системы в режиме ядра, которые управляют операцией ввода-вывода, памятью Plug and Play, процессами и потоками, безопасностью и т. д. Драйверы режима ядра обычно имеют многослойную структуру. Как правило, драйверы более высокого уровня обычно получают данные из приложений, фильтруют данные и передают их в драйвер нижнего уровня, поддерживающий функциональные возможности устройства.
Некоторые драйверы в режиме ядра также являются драйверами WDM, которые соответствуют модели драйверов Windows (WDM). Все драйверы WDM поддерживают plug and Play и управление питанием.
Как и сама операционная система, драйверы режима ядра реализуются как дискретные модульные компоненты, имеющие четко определенный набор необходимых функциональных возможностей. Все драйверы режима ядра предоставляют набор системных стандартных подпрограмм драйверов.
На следующем рисунке драйверы режима ядра делятся на несколько типов.
Как показано на рисунке, существует три основных типа драйверов режима ядра в стеке драйверов: высокий уровень, промежуточный и самый низкий уровень. Каждый тип отличается лишь немного в структуре, но значительно в функциональных возможностях:
Драйверы самого высокого уровня. Драйверы с высоким уровнем включают драйверы файловой системы (FSD), поддерживающие файловые системы, такие как:
NTFS
Таблица выделения файлов (FAT)
Файловая система CD-ROM (CDFS)
Драйверы высокого уровня всегда зависят от поддержки базовых драйверов нижнего уровня, таких как драйверы функций промежуточного уровня и драйверы аппаратной шины самого низкого уровня.
Промежуточные драйверы, такие как виртуальный диск, зеркало или драйвер класса для конкретного типа устройства. Промежуточные драйверы зависят от поддержки базовых драйверов нижнего уровня. Промежуточные драйверы подразделяются далее следующим образом:
Драйверы функций управляют конкретными периферийными устройствами на шине ввода-вывода.
Драйверы фильтров вставляют себя выше или ниже драйверов функций.
Драйверы программной шины представляют собой набор дочерних устройств, к которым драйверы более высокого уровня класса, функции или фильтров могут подключаться.
Например, драйвер, который управляет мультифункциональным адаптером с набором разнородных устройств, является драйвером программной шины.
Любой системный драйвер класса, который экспортирует системно-определённый интерфейс класса/миникласса, фактически является промежуточным драйвером с одним или несколькими связанными драйверами миниклассов (иногда называемыми минидрайверами). Каждая связанная пара класс/минидрайвер предоставляет функциональные возможности, эквивалентные возможности драйвера-функции или драйвера программной шины.
Драйверы низкого уровня управляют шиной ввода-вывода, к которой подключены периферийные устройства. Драйверы низкого уровня не зависят от драйверов нижнего уровня.
Драйверы аппаратных шины предоставляются системой и обычно управляют динамически конфигурируемыми I/O-шинами.
Драйверы аппаратной шины работают с диспетчером Plug and Play для настройки и перенастройки системных аппаратных ресурсов для всех дочерних устройств, подключенных к входным/выходным шинам, которыми управляет драйвер. Эти аппаратные ресурсы включают сопоставления для памяти устройства и запросов прерываний (IRQ — Interrupt Request).
Драйверы предыдущего поколения, которые напрямую управляют физическим устройством, являются драйверами самого низкого уровня.