Поделиться через


Типы драйверов Windows

Существует два основных типа драйверов Microsoft Windows:

  • Драйверы пользовательского режима выполняются в пользовательском режиме и обычно предоставляют интерфейс между приложением Win32 и драйверами режима ядра или другими компонентами операционной системы.

    Например, в Windows Vista все драйверы принтера выполняются в пользовательском режиме. Дополнительные сведения о компонентах драйвера принтера см. в статье Общие сведения о печати.

  • Драйверы, работающие в режиме ядра, выполняются в режиме ядра в рамках руководства, который состоит из компонентов операционной системы в режиме ядра, которые управляют вводом-выводом, Plug and Play памятью, процессами и потоками, безопасностью и т. д. Драйверы в режиме ядра обычно являются многоуровневыми. Как правило, драйверы более высокого уровня обычно получают данные из приложений, фильтруют данные и передают их драйверу более низкого уровня, который поддерживает функциональные возможности устройства.

    Некоторые драйверы режима ядра также являются драйверами WDM, которые соответствуют модели драйверов Windows (WDM). Все драйверы WDM поддерживают Plug and Play и управление питанием. Драйверы WDM совместимы с исходным кодом (но не совместимы с двоичными файлами) в операционных системах Windows 98/Me и Windows 2000 и более поздних версий.

    Как и сама операционная система, драйверы в режиме ядра реализуются в виде дискретных модульных компонентов, имеющих четко определенный набор необходимых функций. Все драйверы в режиме ядра предоставляют набор системных стандартных процедур драйверов.

На следующем рисунке драйверы в режиме ядра разделены на несколько типов.

схема, иллюстрирующая типы драйверов в режиме ядра.

Как показано на рисунке, в стеке драйверов существует три основных типа драйверов в режиме ядра: самый высокий, промежуточный и самый низкий. Каждый тип немного отличается по структуре, но значительно по функциональности:

  1. Драйверы самого высокого уровня. Драйверы самого высокого уровня включают драйверы файловой системы (FSD), которые поддерживают файловые системы, например:

    • NTFS

    • Таблица выделения файлов (FAT)

    • Файловая система компакт-дисков (CDFS)

    Драйверы самого высокого уровня всегда зависят от поддержки базовых драйверов более низкого уровня, таких как драйверы функций промежуточного уровня и драйверы аппаратной шины самого низкого уровня.

  2. Промежуточные драйверы, такие как виртуальный диск, зеркало или драйвер класса для конкретного типа устройства. Промежуточные драйверы зависят от поддержки базовых драйверов более низкого уровня. Промежуточные драйверы подразделяются следующим образом:

    • Драйверы функций управляют конкретными периферийными устройствами в шине ввода-вывода.

    • Драйверы фильтров вставляются над или под драйверами функций.

    • Драйверы программной шины представляют собой набор дочерних устройств, к которым могут подключаться драйверы классов, функций или фильтров более высокого уровня.

      Например, драйвер, управляющий многофункциональным адаптером с встроенным набором разнородных устройств, является драйвером программной шины.

    • Любой системный драйвер класса , экспортируемый системным интерфейсом класса или мини-класса, фактически является промежуточным драйвером с одним или несколькими связанными драйверами мини-класса (иногда называемыми мини-драйверами). Каждая связанная пара "класс/мини-драйвер" предоставляет функциональные возможности, эквивалентные функциям драйвера функции или драйвера программной шины.

  3. Водители самого низкого уровня управляют шиной ввода-вывода , к которой подключены периферийные устройства. Драйверы самого низкого уровня не зависят от драйверов более низкого уровня.

    • Драйверы аппаратной шины предоставляются системой и обычно управляют динамически настраиваемыми шинами ввода-вывода.

      Драйверы аппаратной шины работают с диспетчером Plug and Play, чтобы настроить и перенастроить системные аппаратные ресурсы для всех дочерних устройств, подключенных к шинам ввода-вывода, которыми управляет драйвер. Эти аппаратные ресурсы включают сопоставления памяти устройства и запросов прерываний (IRQ). (Драйверы аппаратной шины подразделяют некоторые функции, предоставляемые компонентом HAL в выпусках операционной системы на основе Windows NT, предшествующих Windows 2000.)

    • Устаревшие драйверы , которые непосредственно управляют физическим устройством, являются драйверами самого низкого уровня.