stringtranslate.com

Структура драйвера пользовательского режима

User-Mode Driver Framework ( UMDF ) — это платформа разработки драйверов устройств, впервые представленная в операционной системе Windows Vista от Microsoft , а также доступная для Windows XP . Она облегчает создание драйверов для определенных классов устройств. [1]

Обзор

Стандартные драйверы устройств могут быть сложными в написании, поскольку они должны обрабатывать очень широкий спектр состояний системы и устройств, особенно в многопоточной программной среде. Плохо написанные драйверы устройств могут нанести серьезный ущерб системе (например, BSoD или повреждение данных), поскольку все стандартные драйверы имеют высокие привилегии при прямом доступе к ядру. Структура драйверов пользовательского режима изолирует ядро ​​от проблем прямого доступа драйвера, вместо этого предоставляя новый класс драйверов с выделенным интерфейсом прикладного программирования на уровне пользователя прерываний и управления памятью. Если возникает ошибка, новая структура позволяет немедленно перезапустить драйвер, не влияя на систему. Это особенно полезно для устройств, которые периодически подключаются к системе или поддерживают горячую замену через шинную технологию, такую ​​как USB или FireWire .

По данным Microsoft, драйверы UMDF проще в написании и отладке, чем драйверы режима ядра. [2] Однако UMDF не следует использовать для устройств с высокой производительностью или с большим количеством состояний .

Первая версия UMDF была отправлена ​​как часть Windows Media Player версии 10 12 октября 2004 г. Под кодовым названием «Crescent» она была разработана для поддержки драйвера Media Transfer Protocol , и для нее не было предоставлено никаких общедоступных интерфейсов или документации. Позже Microsoft решила превратить UMDF в платформу разработки драйверов устройств. [3]

История версий

Архитектура

Драйвер UMDF — это DLL, основанная на модели компонентных объектов (COM) Microsoft. Однако UMDF не использует COM для загрузки, выгрузки или управления параллелизмом ; он использует COM только как шаблон программирования , например, эксплуатируя интерфейс IUnknown COM . При запуске UMDF вызывает DllGetClassObject , чтобы получить указатель на интерфейс IClassFactory в драйвере, а затем использует метод CreateInstance интерфейса IClassFactory для создания экземпляра объекта обратного вызова драйвера.

Объект драйвера является экземпляром интерфейса IWDFDriver , предоставляемого фреймворком . Драйвер предоставляет набор обратных вызовов через интерфейс COM IDriverEntry , который является основной точкой входа для настройки драйвера.

Смотрите также

Ссылки

  1. ^ Программирование драйверов для UMDF
  2. ^ «Преимущества написания драйверов UMDF».
  3. ^ Чарльз Торре, Питер Виланд (2006-09-18). "Питер Виланд: Структура драйвера пользовательского режима". Channel 9 . Microsoft . Получено 2006-09-18 .
  4. ^ Поддержка Microsoft. "Обновление User-Mode Driver Framework версии 1.11 для Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2". Microsoft . Получено 2012-12-01 .
  5. ^ "Часто задаваемые вопросы о User-Mode Driver Framework (драйверы Windows)". Microsoft . Получено 2014-06-04 .

Внешние ссылки