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


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

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

Хост-процесс драйвера (Wudfhost.exe) является дочерним процессом службы диспетчера драйверов. Wudfhost.exe обычно выполняется в учетной записи LocalService , которая имеет минимальные привилегии на локальном компьютере. Экземпляр Wudfhost.exe загружает один или несколько библиотек DLL драйвера UMDF в дополнение к библиотекам DLL платформы. Процесс узла драйвера предоставляет среду выполнения, которая обрабатывает межпроцессное взаимодействие (IPC) между диспетчером драйверов и отражателем, а также диспетчеризацию ввода-вывода, загрузку драйверов, наложение драйверов и управление пулом потоков.

Диспетчер драйверов может создать несколько параллельных экземпляров Wudfhost.exe, как показано ниже.

  • Если драйвер UMDF был создан в версии 1.11 и работает на Windows 8, по умолчанию диспетчер драйверов создает один экземпляр Wudfhost, в котором может размещаться несколько стеков устройств. Этот метод называется пулом устройств.

    Если драйвер UMDF был создан с версией 2 и работает на Windows 8.1 или Windows 10, пул также включен по умолчанию.

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

Дополнительные сведения о пуле устройств см. в статье Использование пулов устройств в драйверах UMDF.

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

Драйверы, созданные с помощью UMDF версий 1 и 2, можно загружать одновременно либо в одном хост-процессе, либо в разных процессах узла. Например, по умолчанию диспетчер драйверов загружает драйвер UMDF 1.11 и драйвер UMDF 2 в одном хост-процессе на компьютере под управлением Windows 8.1 или более поздней версии.

Однако вы не можете загрузить драйверы UMDF версий 1 и 2 в одном стеке устройств. Например, нельзя загрузить драйвер фильтра UMDF версии 1 над драйвером функции UMDF версии 2.

Схему, показывающую связь узла драйвера с другими компонентами UMDF, см. в разделе Обзор UMDF.