Windows user mode drivers

Overview of UMDF

This topic provides a high-level overview of User-Mode Driver Framework (UMDF) components and describes how your driver interacts with system-supplied components. It applies to both UMDF versions 1 and 2.

UMDF drivers abstract hardware functionality, run in the user-mode environment, and can access various services. UMDF drivers operate as part of a stack of drivers that manage a device. File system drivers, display drivers (for full display devices, not display-only display devices), and print drivers cannot be UMDF drivers.

A UMDF driver interacts with the following system-supplied components:

Driver host process

The driver host process loads vendor-supplied UMDF drivers and framework DLLs, provides an execution environment for user-mode drivers, and routes messages between drivers in a user-mode stack. For more information, see UMDF Driver Host Process.

The driver manager is a Windows service that manages all instances of the Wudfhost driver host process. The driver manager launches and tracks information about each driver host process. Each host is a child process of the driver manager. Only one driver manager exists per system. The driver manager starts during installation of the first UMDF device and runs on the system thereafter.

The reflector is a kernel-mode driver that permits an application and a driver host process (and user-mode device stacks) to communicate. The reflector creates a separate device object for each device instance and handles Plug and Play (PnP) and power I/O requests associated with each device instance. All communication between the application and the driver host process happens through the reflector. For more information, see Architecture of UMDF.

All function and filter drivers for a given device must run in the same driver host process, but multiple host processes can be running concurrently.

The following diagram shows how driver host processes, driver manager, and reflector communicate across the user mode/kernel mode boundary.

User-Mode Driver Framework Frequently Asked Questions

Windows Driver Frameworks (WDF) is a set of libraries that you can use to write device drivers that run on the Windows operating system. WDF defines a single driver model that is supported by two frameworks: Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF). This topic provides answers to frequently asked questions about UMDF.

Which operating systems can run UMDF drivers?

You can run UMDF drivers on the following operating systems:

  • Windows 10
  • WindowsВ 8.1
  • WindowsВ 8
  • WindowsВ 7
  • WindowsВ Vista
  • WindowsВ XP

What is the most recent version of UMDF?

UMDF version 2 (both 2.0 and 2.1) is included in Windows 10 and later.

What is the difference between UMDF version 2 and the previous version, 1.11 (one dot eleven)?

A driver written in UMDF version 2 is written in the C programming language. This same driver can then be easily compiled for KMDF. Additionally, a UMDF version 1 driver must be written according to the COM programming model.

Which operating systems support UMDF 2?

UMDF version 2 drivers run on WindowsВ 8.1 and later.

Which UMDF versions can I build against in Windows Driver Kit (WDK)В 10?

You can build UMDF 2.1, 2.0, 1.11, and 1.9 drivers using Windows Driver Kit (WDK)В 10 and Microsoft Visual Studio. For information about which versions of Windows can run drivers built using these UMDF versions, see UMDF Version History.

Читайте также:  Очистка кэша проводника windows

Can I write part of my driver to run in user mode and part in kernel mode?

Yes. Even if your driver requires access to some kernel-mode resources or features, you might be able to split your driver into two parts. This approach enables you to benefit from some of the advantages of developing and running drivers in user mode.

A UMDF driver can receive I/O requests from a kernel-mode driver. For more info about kernel-mode clients, see Supporting Kernel-Mode Clients in UMDF 2 Drivers.

As a result of increased parity between KMDF and UMDF, however, you will rarely need to split a driver.

Which framework should I start with?

If your driver requires any of the less common features listed in Comparing UMDF 2 Functionality to KMDF, you must use KMDF. For all other drivers, your first choice should be UMDF.

If you start with UMDF and decide later to transition to KMDF, you can do so with minimal effort, as described in How to convert a KMDF driver to a UMDF 2 driver (and vice-versa).

How do user-mode drivers handle security?

UMDF drivers run in a driver host process, which runs in the security credentials of a LocalService account, although the host process itself is not a Windows service. Thus, user-mode drivers are as secure as any other user-mode service. When a UMDF driver issues I/O requests, it can optionally impersonate its client process. Impersonation enables the driver thread to run in the security context of the client so that the system performs access checks against the client’s identity rather than that of the driver host process.

A user-mode driver can impersonate its client process only for I/O requests, and not for Plug and Play or other system messages.

At driver installation, the INF file sets a maximum impersonation level for the driver. Impersonation should be set at the lowest level possible to prevent «elevation-of-privilege» attacks. When a client application calls the CreateFile function, it specifies an impersonation level. The driver then requests this level of impersonation for each individual I/O request.

Will a user-mode driver be fast enough?

Performance is a high priority in developing UMDF. Although latency and CPU usage both increase somewhat, bus capacity is the primary gating factor for the types of devices that UMDF supports.

What is the difference between a user-mode driver and an application?

A user-mode driver is started by the Driver Manager and runs in a driver host process. A single instance of the driver can service simultaneous requests from multiple applications. To communicate with the driver, applications issue I/O requests to the driver’s device through the Win32 API. The primary entry point in a user-mode driver is the IDriverEntry interface (UMDF 1.11 and earlier) or the DriverEntry routine (starting in UMDF 2.0), rather than a main() function.

A driver also includes additional interfaces or callbacks that are invoked in response to I/O requests and Plug and Play and power notifications. A device that is managed by a UMDF driver is integrated into the system and participates in Plug and Play and power management.

How do I debug a UMDF driver?

You can debug a UMDF driver by using user-mode debuggers or kernel-mode debuggers. For more info, see Debugging WDF Drivers.

Starting in UMDF version 2.0, you can use many of the commands in the Wdfkd.dll debugger extension library to debug your UMDF driver. For a list of commands, see Debugger Extensions. In addition, UMDF stores the UMDF trace log (or UMDF IFR) in kernel non-paged memory. For info about the IFR, see Using the Framework’s Event Logger.

Is there a newsgroup for UMDF?

You can find discussion of all aspects of Windows drivers on the following forums:

Open Systems Resources (OSR) moderates the OSR Online NTDEV List forum.

Службы Windows

Служба «Windows Driver Foundation-User-mode Driver Framework» по умолчанию
должна быть установлена на запуск «Автоматически»
Но при подключении новой «флэшки» происходит перевод этой службы в режим «Вручную»,
что приводит к ошибке: с ID события 219, Категория:212
Внимание Источник: Microsoft-Windows-Kernel-PnP, а также появляется еще
одна ошибка с подключением уже опознанной «флэшки»:
Ошибка источник Disk:
Драйвер обнаружил ошибку контроллера \Device\Harddisk1\DR1.

Читайте также:  Raybook bi149 драйвера windows 10

В описании к службе «Windows Driver Foundation-User-mode Driver Framework»
безапелляционно написано:
Описание:
«Создает процессы драйверов пользовательского режима и управляет ими.
Эту службу невозможно остановить

Ответы (3) 

Не совсем понятно, почему Вы решили, что данная служба всегда должна иметь настройку «Автоматически» в типе запуска службы. Однако, если я правильно понял у Вас возникает проблема с подключением флешки к компьютеру, а точнее с её определением. И если это так, то попробуйте сначала подключить данную флешку к любому другому рабочему устройству, чтобы убедиться, что проблема не в самом устройстве.

И если проблем с флешкой на другом компьютере не будет, то необходимо будет установить все доступные драйвера для Windows 7, для Вашей материнской платы или ноутбука c официального сайта производителя Вашего оборудования, а если и это не решит проблему, то Вы можете выполнить полную переустановку Windows 7.

Более подробную информацию касательно самих служб Windows и специфики их работы, Вы можете найти на нашем специальном ресурсе для разработчиков MSDN.

В случае дополнительных вопросов, пожалуйста, обращайтесь к нам.

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

1.Не совсем понятно, почему Вы решили, что данная служба всегда должна иметь настройку «Автоматически» в типе запуска службы. Однако, если я правильно понял у Вас возникает проблема с подключением флешки к компьютеру, а точнее с её определением.

а) После установки ОС и абсолютно всех драйверов эта служба имеет настройку «Автоматически», да и в описании службы недвусмысленно написано «Эту службу невозможно остановить». б) Все флэшки легко определяются на трех моих личных устройствах и на всех этих устройствах и других на работе переводят эту службу «Вручную», а этого не должно происходитьисходя из описания службы.

И если это так, то попробуйте сначала подключить данную флешку к любому другому рабочему устройству, чтобы убедиться, что проблема не в самом устройстве.

Из пункта б) моего ответа ясно следует, что дело не во флэшках и устройствах.

«И если проблем с флешкой на другом компьютере не будет, то необходимо будет установить все доступные драйвера для Windows 7, для Вашей материнской платы или ноутбука c официального сайта производителя Вашего оборудования, а если и это не решит проблему, то Вы можете выполнить полную переустановку Windows 7«.

Этого мне только и не хватало.

2. Я за компьютером с 1996 года.

«Более подробную информацию касательно самих служб Windows и специфики их работы, Вы можете найти на нашем специальном ресурсе для разработчиков MSDN.

В случае дополнительных вопросов, пожалуйста, обращайтесь к нам.

Большое спасибо за попытку. Но, Вы даже на йоту не приблизились к решению.

Дело в том, что это не только мой личный вопрос, а скажем небольшого коллектива айтишников обслуживающих небольшие компании.

Мы все абсолютно уверены, что этот маленький баг принадлежит компании Microsoft.

И кроме Microsoft его никто не исправит.

Поскольку этот баг ни на что реально не влияет, его просто игнорируют.

Windows Driver Foundation с высокой загрузкой процессора

Windows Driver Foundation это прежнее имя Драйверы для Windows, Это набор библиотек и инструментов Microsoft, которые помогают уменьшить сложность написания Windows драйверы, Он переводит драйверы в пользовательский режим. Эта услуга необходима для общей стабильности системы.

Иногда могут возникнуть проблемы с системой, если Windows Driver Foundation использует большую часть загрузки процессора. Несмотря на то, что он не ограничивает функциональные возможности ЦП для большинства пользователей, он, безусловно, расходует заряд батареи и иногда может привести к зависанию системы, особенно при увеличении использования до 100%. Попытка завершить процесс в диспетчере задач не помогает, потому что это системный процесс.

Windows Driver Foundation с высокой загрузкой процессора или памяти

Обновление за апрель 2021 года:

Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
Читайте также:  Сибирь 3 mac os

Чтобы узнать, происходит ли загрузка процессора из-за Windows Driver Foundation или wudfsvc.dll, откройте диспетчер задач, щелкнув правой кнопкой мыши на панели задач и выбрав диспетчер задач.

Проверьте здесь, если процесс имеет высокую загрузку процессора. Это Windows Driver Foundation? Он может иметь альтернативное имя User-mode Driver Framework (UMDF) или wudfhost.exe.

Если это действительно требует больших ресурсов, попробуйте некоторые из этих предложений по устранению неполадок.

1] Запустить Центр обновления Windows

Убедитесь, что в вашей операционной системе Windows установлены последние исправления и исправления.

2] Запустите средство устранения неполадок

Запустите средство устранения неполадок обслуживания системы. Выполнять Устранение неполадок обслуживания системы, Откройте Run, введите следующее и нажмите Enter:

Помогает ли это?

Затем запустите Устранение неполадок производительности системы, Для этого откройте командную строку высокого уровня, введите следующую команду и нажмите клавишу Enter, чтобы начать устранение неполадок производительности.

Это устранение неполадок помогает пользователю настроить параметры для повышения скорости и производительности операционной системы.

3] Устранение неполадок в состоянии чистого запуска

Чистый старт поможет вам решить проблему. Авторизуйтесь в системе как администратор. Нажмите Windows + R, чтобы открыть окно «Выполнить». Введите команду «msconfig» и нажмите Enter.

Перейдите на вкладку «Общие», затем нажмите Выборочный старт, Очистить элементы загрузки загрузки установите флажок и убедитесь, что Загрузить системные службы и Использовать исходную конфигурацию загрузки выбраны.

На вкладке «Службы» выберите «Не отображать службы Microsoft‘и нажмите Отключить все.

Нажмите «Применить» и перезапустите систему.

Причиной запуска чистой загрузки является изоляция любого программного обеспечения, вызвавшего проблему. Если чистая загрузка решает проблему высокой загрузки ЦП, попробуйте найти именно то программное обеспечение, которое нарушило работу. Вы должны сделать это вручную, активировав / деактивировав каждый процесс или запустив его.

4] Удалить устройства из системы

Удалите каждое устройство из системы и убедитесь, что проблема решена. В этом случае может потребоваться заменить это конкретное устройство или его водитель обновляется.

5] Обновление и переустановка драйверов WiFi

Многие пользователи указали, что переустановка драйверов WiFi помогла им решить проблему. Процесс обновления драйвера устройства выглядит следующим образом:

Нажмите Win + X и щелкните Диспетчер устройств, чтобы открыть его. Найдите «Сетевые адаптеры» в алфавитном списке и щелкните стрелку, указывающую вперед.

Найти беспроводные драйверы в списке, справа-c

Перезагрузите систему и проверьте, решена ли проблема. В противном случае продолжайте переустановку драйверов.

Снова откройте Диспетчер устройств и щелкните правой кнопкой мыши драйверы беспроводной сети. Затем нажмите «Свойства». Откройте вкладку Драйвер и нажмите Удалить удалить драйверы. Если система остается подключенной к Wi-Fi, перезагрузите систему. Он должен автоматически определять драйверы.

6] Предложения для профессионалов

Монитор производительности — это хороший встроенный инструмент, который позволяет вам отслеживать и изучать, как запускаемые вами приложения влияют на производительность вашего компьютера, как в режиме реального времени, так и путем сбора данных журнала для последующего анализа. Это очень полезно для выявления и устранения проблем ресурсоемких процессов, а также для создания отчета о работоспособности системы для Windows. Но иногда вам может понадобиться сторонний бесплатный инструмент для управления процессами, требующими высокой загрузки ЦП. Process Tamer — это бесплатный инструмент, который помогает управлять высокой или 100% загрузкой ЦП в Windows.

С наилучшими пожеланиями!

Обрабатывать статьи с большими ресурсами:

      • Провайдер хоста WMI Высокое использование ЦП
      • Модуль Windows Installer Worker Высокая загрузка ЦП и диска
      • Менеджер окон рабочего стола dwm. exe потребляет высокий процессор
      • Ntoskrnl.exe высокая загрузка процессора и диска
      • Проблема OneDrive с высокой загрузкой процессора
      • Windows Shell Experience Host использует высокий процессор
      • Wuauserv высокая загрузка процессора.

Оцените статью