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


Процесс узла драйвера 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".