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


Общие сведения о UMDF

В этом разделе представлен общий обзор компонентов User-Mode Driver Framework (UMDF) и описывается взаимодействие драйвера с системными компонентами. Это относится как к UMDF версии 1, так и к 2.

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

Драйвер UMDF взаимодействует со следующими системными компонентами:

  • Процесс узла драйвера

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

  • Диспетчер драйверов

    Диспетчер драйверов — это служба Windows, которая управляет всеми экземплярами хост-процесса драйвера Wudfhost. Диспетчер драйверов запускает и отслеживает сведения о каждом хост-процессе драйвера. Каждый узел является дочерним процессом диспетчера драйверов. Для каждой системы существует только один диспетчер драйверов. Диспетчер драйверов запускается во время установки первого устройства UMDF и после этого запускается в системе.

  • Reflector

    Отражатель — это драйвер в режиме ядра, который позволяет приложению и хост-процессу драйвера (и стекам устройств в пользовательском режиме) обмениваться данными. Отражатель создает отдельный объект устройства для каждого экземпляра устройства и обрабатывает запросы Plug and Play (PnP) и питания ввода-вывода, связанные с каждым экземпляром устройства. Весь обмен данными между приложением и хост-процессом драйвера происходит через отражатель. Дополнительные сведения см. в разделе Архитектура UMDF.

Все драйверы функций и фильтров для конкретного устройства должны выполняться в одном хост-процессе драйвера, но одновременно могут выполняться несколько хост-процессов.

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

Компоненты umdf, включая объекты устройств вверх и вниз в отражатель.