Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.
Архивные примеры UMDF 1 можно найти в Windows 11 версии 22H2 — майское обновление образцов драйверов 2022 года.
Дополнительные сведения см. в разделе Начало работы сUMDF.
В этом разделе описывается, как использовать расширения отладчика Wudfext.dll в сочетании с драйвером User-Mode Driver Framework (UMDF) версии 1, чтобы определить, почему драйвер UMDF потребляет чрезмерное количество памяти.
Начиная с UMDF версии 2, рекомендуется использовать расширения отладчика Wdfkd.dll. Дополнительные сведения см. в расширениях платформы Windows Driver Framework () (Wdfkd.dll).
Чтобы изучить использование памяти, выполните следующие действия.
Просмотр выдающегося объекта в дереве объектов с помощью расширения отладчика UMDF !wudfext.wudfobject.
Расширение !wudfext.wudfobject отображает сведения о объекте WDF, включая его родительские и дочерние отношения. Если установить бит 0 параметра флагов в значение 1 (0x01), !wudfext.wudfobject выполняет рекурсивный дамп дерева объектов, начинающегося с переданного объекта. Чтобы просмотреть полное дерево объектов, используйте следующую команду:
!wudfext.wudfobject <IWDFDriver*> 1
Определите, отображаются ли более выдающиеся объекты, чем ожидалось.
Драйвер может в конечном итоге вызвать утечку этих объектов (подробнее об утечке объектов WDF см. в разделе Определение того,утекут ли объекты фреймворка).
Эти объекты могут находиться в дереве объектов и поэтому в конечном итоге будут освобождены. Тем не менее, они накапливаются ненужно. Для этих объектов может потребоваться следующее:
- Исправления родительских объектов.
- Явное удаление с помощью метода IWDFObject::DeleteWdfObject.