Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описываются преимущества написания драйвера User-Mode Driver Framework (UMDF) вместо драйвера в режиме ядра.
При написании драйвера UMDF вы можете воспользоваться следующими преимуществами:
Драйверы UMDF способствуют повышению стабильности операционной системы, так как у них есть доступ только к адресной области процесса, в котором они выполняются.
Так как драйверы UMDF выполняются под учетной записью LocalService , они имеют ограниченный доступ к данным пользователя или системным файлам.
Драйверы пользовательского режима работают в гораздо более простой среде, чем драйверы в режиме ядра. Например, драйверы в режиме ядра должны учитывать IRQL, ошибки страниц и контекст потока. Однако в пользовательском режиме эти проблемы не существуют. Драйверы пользовательского режима всегда выполняются в отдельном потоке от процесса, который отправляет запрос, и всегда могут обрабатывать ошибки страниц.
UMDF версии 2 предлагает четность функций с KMDF в большинстве областей. Полное сравнение см. в разделе "Сравнение функциональных возможностей UMDF 2 с KMDF".
UMDF версии 2 упрощает преобразование между KMDF и UMDF. Узнайте, как преобразовать драйвер KMDF в драйвер UMDF 2 (и наоборот).
Драйверы UMDF можно отлаживать с помощью отладчика пользовательского режима или, начиная с UMDF версии 2, отладчика в режиме ядра.
Команды расширения отладчика Wdfkd.dll можно использовать с KMDF и начиная с версии 2 UMDF. Дополнительные сведения см. в разделе "Расширения отладчика".
Основная цель общей модели WDF — обеспечить интеллектуальные значения по умолчанию, чтобы сосредоточиться на оборудовании устройства и избежать написания кода для выполнения задач, которые являются общими для большинства драйверов.
Для достижения этой цели платформа предназначена для работы с драйверами на основе "согласия". При написании драйвера UMDF вы предоставляете процедуры обратного вызова только для событий, влияющих на устройство. Например, некоторые устройства требуют вмешательства сразу после включения и непосредственно перед отключением. Драйвер для такого устройства может реализовать функции обратного вызова, которые платформа вызывает в указанные моменты.
Драйвер включает код для обработки только тех событий, которые требуют специфической поддержки устройства. Все остальные события могут обрабатываться платформой по умолчанию.
Кроме того, драйвер может настроить очереди запросов ввода-вывода, чтобы платформа перестала отправлять запросы, пока устройство находится в состоянии низкой мощности и возобновляет отправку после возвращения устройства в рабочее состояние. Аналогичным образом, если запрос ввода-вывода поступает, пока устройство находится в состоянии низкой мощности, платформа может автоматически включить устройство.