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


Написание драйверов WDM

В этом разделе рассматривается архитектура модели драйвера Microsoft Windows (WDM). Эта архитектура началась в Windows 2000 как усовершенствование предыдущих Windows NT драйверов устройств.

Примечание Драйверы для версий Windows NT операционных систем до Windows 2000 не поддерживаются, и их следует обновить. Архитектура WDM не поддерживает драйверы для операционных систем, не основанных на Windows NT (например, Windows 98), и такие драйверы следует переписать.

Этот раздел состоит из трех частей:

  • Модель драйвера Windows описывает модель драйвера Windows (WDM), включая типы драйверов WDM, конфигурацию устройства и управление версиями WDM.

  • Объекты устройств и стеки устройств описывают объекты устройств и стеки устройств. В разделе содержатся сведения о физических объектах устройств (PDO), объектах функциональных устройств (FDO) и фильтрации объектов устройств (фильтрация DOS). Драйверы часто создаются из набора объектов устройств, которые работают вместе. Этот набор объектов устройств называется стеком. Стеки помогают понять потоки информации, поступающие в драйвер и поступающие от нее, а также то, как различные части драйвера взаимодействуют между собой.

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

    Драйвер устройства — это набор программного кода, который должен интегрироваться в операционную систему. Чтобы завершить эту интеграцию, необходимо написать в драйвере набор подпрограмм обработчика, обрабатывающих вызовы из операционной системы. Эти подпрограммы могут быть простыми вызовами функций, но многие из них реализуют обработку пакетов запросов ввода-вывода (IRP), которые упрощают обмен данными между драйверами и операционной системой.

Примечание Драйверы WDM также могут использовать библиотеку Windows Driver Framework (WDF), чтобы упростить запись некоторых частей драйвера устройства. В частности, драйверы в режиме ядра могут использовать Kernel-Mode Driver Framework (KMDF), которая является частью WDF. Дополнительные сведения о KMDF для драйверов в режиме ядра см. в статье Обзор платформы драйверов в режиме ядра. Обратите внимание, что KMDF не заменяет WDM. Для написания драйвера KMDF необходимо по-прежнему понимать многие части WDM.