Выбор модели драйвера
Microsoft Windows предоставляет различные модели драйверов, которые можно использовать для записи драйверов. Стратегия выбора оптимальной модели драйверов зависит от типа драйвера, который вы планируете написать. Ниже приведены параметры.
- Драйвер функции устройства
- Драйвер фильтра устройств
- Драйвер
- Драйвер фильтра файловой системы
- Драйвер файловой системы
Сведения о различиях между различными типами драйверов см. в разделе "Что такое драйвер" и "Узлы устройств" и "Стеки устройств". В следующих разделах объясняется, как выбрать модель для каждого типа драйвера.
Выбор модели драйвера для драйвера функции устройства
При проектировании аппаратного устройства следует учитывать, нужно ли писать драйвер функции. Ответьте на следующие вопросы:
Можете ли вы полностью избежать написания драйвера? Если необходимо написать драйвер функции, что такое оптимальная модель драйвера для использования? Чтобы ответить на эти вопросы, определите, где устройство соответствует списку технологий, описанных в технологиях устройств и драйверов. Ознакомьтесь с документацией по этой конкретной технологии, чтобы определить, нужно ли писать драйвер-функцию и узнать, какие модели драйверов доступны для вашего устройства.
Некоторые из отдельных технологий имеют модели мини-driver. В модели мини-driver драйвер устройства состоит из двух частей: один из них обрабатывает общие задачи, а также тот, который обрабатывает задачи, относящиеся к устройству. Как правило, корпорация Майкрософт записывает общую часть, а производитель устройства записывает определенную часть устройства. Определенные части устройства имеют различные имена, большинство из которых совместно используют префикс mini. Ниже приведены некоторые имена, используемые в моделях мини-driver:
- Отображение минипорта драйвера
- Драйвер минипорта аудио
- Драйвер миникласса батареи
- Драйвер протокола Bluetooth
- Мини-driver HID
- Мини-driver WIA
- Драйвер минипорта NDIS
- Драйвер мини-порта хранилища
- Потоковая мини-driver
Общие сведения о моделях мини-driver см. в разделе "Мини-drivers" и "Пары драйверов".
Не все технологии, перечисленные в технологиях устройств и драйверов, имеют выделенную модель мини-driver. Документация по определенной технологии может порекомендовать вам использовать платформу драйверов в режиме ядра (KMDF); документация по другой технологии может порекомендовать вам использовать среда выполнения платформы драйвера режима пользователя (UMDF). Основной момент заключается в том, что следует начать с изучения документации по конкретной технологии устройства. Если у вашей технологии устройства есть модель мини-driver, необходимо использовать модель мини-driver. В противном случае следуйте рекомендациям в документации по технологии о том, следует ли использовать модель UMDF, KMDF или модель драйвера Windows (WDM).
Выбор модели драйвера для драйвера фильтра устройств
Часто несколько драйверов участвуют в одном запросе ввода-вывода (например, считывании данных с устройства). Драйверы слоится в стеке, и обычный способ визуализации стека состоит из первого драйвера в верхней части и последнего драйвера в нижней части. В стеке есть один драйвер функции, который также может иметь драйверы фильтров. Сведения о драйверах функций и драйверах фильтров см. в разделе "Что такое драйвер",а также узлы устройств и стеки устройств.
Если вы готовитесь написать драйвер фильтра для устройства, определите, где устройство соответствует списку технологий, описанных в технологиях устройств и драйверов. Проверьте, есть ли в документации для конкретной технологии устройства рекомендации по выбору модели драйвера фильтра. Если документация по технологии устройства не предлагает эти рекомендации, сначала рассмотрите возможность использования UMDF в качестве модели драйвера. Если драйвер фильтра нуждается в доступе к структурам данных, которые недоступны через UMDF, рассмотрите возможность использования KMDF в качестве модели драйвера. В редких случаях, когда драйверу требуется доступ к структурам данных, недоступным через KMDF, используйте WDM в качестве модели драйвера.
Выбор модели драйверов для драйвера программного обеспечения
Драйвер, не связанный с устройством, называется программным драйвером. Сведения о драйверах программного обеспечения см. в статье "Что такое драйвер?". Драйверы программного обеспечения полезны, так как они могут работать в режиме ядра, что дает им доступ к защищенным данным операционной системы. Сведения о режимах процессора см. в разделе "Режим пользователя" и "Режим ядра".
Для драйвера программного обеспечения два варианта — KMDF и устаревшая модель драйвера Windows NT. С помощью KMDF и устаревшей модели Windows NT можно написать драйвер, не беспокоясь о самонастраивающийся (PnP) и управлении питанием. Вместо этого можно сосредоточиться на основных задачах драйвера. При использовании KMDF вам не нужно беспокоиться о PnP и мощности, так как платформа обрабатывает PnP и мощность для вас. В устаревшей модели Windows NT вам не нужно беспокоиться о PnP и power, так как службы в режиме ядра работают в среде, которая полностью не зависит от PnP и управления питанием.
Наша рекомендация заключается в том, что вы используете KMDF, особенно если вы уже знакомы с ним. Если вы хотите, чтобы драйвер был полностью независимым от PnP и управления питанием, используйте устаревшую модель Windows NT. Если необходимо написать программный драйвер, который знает о переходах питания или событиях PnP, вы не можете использовать устаревшую модель Windows NT; необходимо использовать KMDF.
Примечание. В очень редких случаях необходимо написать драйвер программного обеспечения, который знает о событиях PnP или питания, и драйверу требуется доступ к данным, недоступным через KMDF, необходимо использовать WDM.
Выбор модели драйвера для драйвера файловой системы
Сведения о выборе модели драйвера файловой системы см . в примерах драйверов файловой системы. Обратите внимание, что драйверы файловой системы могут быть сложными и могут требовать знания о расширенных концепциях разработки драйверов.
Выбор модели драйвера для драйвера фильтра файловой системы
Сведения о выборе модели для драйвера фильтра файловой системы см. в статьях Драйверы мини-фильтра файловой системы и драйверы фильтров файловой системы.
Выбор модели драйвера для мини-фильтра файловой системы
Сведения о выборе модели для драйвера мини-фильтра файловой системы см. в разделе "Драйверы минифильтратора файловой системы".