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


Выбор модели драйвера

Microsoft Windows предоставляет различные модели драйверов, которые можно использовать для записи драйверов. Стратегия выбора оптимальной модели драйверов зависит от типа драйвера, который вы планируете написать. Ниже приведены параметры.

  • Драйвер функции устройства
  • Драйвер фильтра устройств
  • Программный драйвер
  • Драйвер фильтра файловой системы
  • Драйвер файловой системы

Для обсуждения различий между различными типами драйверов см. раздел Что такое драйвер?, а также разделы Узлы устройств и стеки устройств. В следующих разделах объясняется, как выбрать модель для каждого типа драйвера.

Выбор модели драйвера для драйвера функции устройства

При проектировании аппаратного устройства следует учитывать, нужно ли писать драйвер функции. Задайте следующие вопросы:

Можете ли вы полностью избежать написания драйвера? Если необходимо написать драйвер функции, что такое оптимальная модель драйвера для использования? Чтобы ответить на эти вопросы, определите, где ваше устройство соответствует списку технологий, описанных в технологиях устройств и драйверов. Ознакомьтесь с документацией по этой конкретной технологии, чтобы определить, нужно ли писать драйвер-функцию и узнать, какие модели драйверов доступны для вашего устройства.

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

  • Отображение минипорта драйвера
  • Драйвер минипорта аудио
  • Драйвер миникласса батареи
  • Драйвер протокола Bluetooth
  • Миндрайвер HID
  • минидрайвер WIA
  • Драйвер минипорта NDIS
  • Драйвер мини-порта хранилища
  • Потоковый мини-драйвер

Общие сведения о моделях минидрайверов см. в разделе Минидрайверы и пары драйверов.

Не для всех технологий, перечисленных в технологии устройств и драйверов, существует выделенная модель мини-драйвера. Документация по определенной технологии может порекомендовать использовать Kernel-Mode Driver Framework (KMDF); Документация по другой технологии может порекомендовать использовать User-Mode Driver Framework (UMDF). Основной момент заключается в том, что следует начать с изучения документации по конкретной технологии устройства. Если у вашего устройства есть модель минидрайвера, вы должны использовать модель минидрайвера. В противном случае следуйте рекомендациям в документации по технологии о том, следует ли использовать модель UMDF, KMDF или модель драйвера Windows (WDM).

Выбор модели драйвера для драйвера фильтра устройств

Часто несколько драйверов участвуют в одном запросе ввода-вывода (например, считывании данных с устройства). Драйверы слоены в стеке, и обычный способ визуализации стека - разместить первый драйвер сверху, а последний драйвер снизу. В стеке есть один драйвер функции, который также может иметь драйверы фильтров. Для обсуждения драйверов функций и драйверов фильтров см. Что такое драйвер? и Узлы устройств и стеки устройств.

Если вы готовитесь написать драйвер фильтра для устройства, определите, где устройство соответствует списку технологий, описанных в технологиях устройств и драйверов. Проверьте, есть ли в документации для конкретной технологии устройства рекомендации по выбору модели драйвера фильтра. Если документация по технологии устройства не предлагает эти рекомендации, сначала рассмотрите возможность использования UMDF в качестве модели драйвера. Если драйвер фильтра нуждается в доступе к структурам данных, которые недоступны через UMDF, рассмотрите возможность использования KMDF в качестве модели драйвера. В редких случаях, когда драйверу требуется доступ к структурам данных, недоступным через KMDF, используйте WDM в качестве модели драйвера.

Выбор модели драйверов для драйвера программного обеспечения

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

Для драйвера программного обеспечения два варианта — KMDF и устаревшая модель драйвера Windows NT. С использованием KMDF и устаревшей модели Windows NT, вы можете написать драйвер, не беспокоясь о Plug and Play (PnP) и управлении питанием. Вместо этого можно сосредоточиться на основных задачах драйвера. При использовании KMDF вам не нужно беспокоиться о PnP и мощности, так как платформа обрабатывает PnP и мощность для вас. В устаревшей модели Windows NT вам не нужно беспокоиться о PnP и power, так как службы в режиме ядра работают в среде, которая полностью не зависит от PnP и управления питанием.

Наша рекомендация заключается в том, что вы используете KMDF, особенно если вы уже знакомы с ним. Если вы хотите, чтобы драйвер был полностью независимым от PnP и управления питанием, используйте устаревшую модель Windows NT. Если необходимо написать программный драйвер, который знает о переходах питания или событиях PnP, вы не можете использовать устаревшую модель Windows NT; необходимо использовать KMDF.

Примечание. В очень редких случаях необходимо написать драйвер программного обеспечения, который знает о событиях PnP или питания, и драйверу требуется доступ к данным, недоступным через KMDF, необходимо использовать WDM.

Выбор модели драйвера для драйвера файловой системы

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

Выбор модели драйвера для драйвера фильтра файловой системы

Сведения о выборе модели для драйвера фильтра файловой системы см. в статьях Драйверы мини-фильтра файловой системы и драйверы фильтров файловой системы .

Выбор модели драйвера для мини-фильтра файловой системы

Чтобы получить помощь в выборе модели для драйвера мини-фильтра файловой системы, см. Драйверы мини-фильтра файловой системы.

Kernel-Mode Driver Framework

User-Mode Фреймворк драйвера