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


Обзор UMDF

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

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

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

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

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

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

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

  • Рефлектор

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

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

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

#B0 #A1 компоненты UMDF, включая восходящие и нисходящие объекты устройства в отражателе. #A2 #C3