Ведение журнала драйверов в пользовательском режиме
В этой статье представлен обзор ведения журнала драйверов в режиме пользователя в WDDM.
Чтобы получить более эффективную разбивку памяти видео, драйвер WDDM должен предоставить связь между ресурсами Direct3D и выделением памяти видео. Начиная с Windows 8, эта возможность возможна с добавлением интерфейсов ведения журнала драйвера пользовательского режима (UMD). С помощью этих сведений, добавленных в трассировку событий для Windows (ETW), можно просмотреть выделение памяти видео с точки зрения API.
Требования:
- Минимальная версия WDDM: 1.2
- Минимальная версия Windows: 8
- Реализация драйвера — только полная графика и отрисовка: обязательный
- Требования и тесты WHLK : Device.Graphics;UMDLogging
Для разработчиков ведение журнала UMD может уточнить затраты на память, такие как внутренняя фрагментация или эффект быстрого удаления поверхностей. Это позволяет Корпорации Майкрософт лучше работать с клиентами и партнерами, которые предоставляют трассировку для анализа проблем с производительностью. В частности, эта функция может помочь преодолеть общую блокировку при изучении проблем с производительностью, связанных с памятью: приложение использует слишком большой рабочий набор, но вы не можете определить, какие ресурсы API или вызовы вызывают проблему.
Драйвер должен предоставлять связь между ресурсами Direct3D и выделением памяти видео, реализуя интерфейсы UMD ETW. В дополнение к событиям ведения журнала драйвер должен иметь возможность сообщать обо всех существующих сопоставлениях между ресурсами и выделениями в любой момент времени.
Ведение журнала распределения драйверов UMD DDI
DDI ведения журнала выделения UMD предоставляет события в объекте трассировки на уровне ядра ETW, показывающие, какие ресурсы API связаны с выделением ядра в подсистеме ядра DirectX (Dxgkrnl.sys).
DDI можно использовать для:
- Обнаружение фрагментации внутренней памяти или влияние поверхностей, которые быстро удаляются.
- Укажите более подробные сведения о трассировки для Майкрософт, чтобы помочь вам определить проблемы с производительностью.
- Помогите определить, когда ресурсы или вызовы API приложения вызывают слишком большой рабочий набор памяти.
Используйте эти функции, перечисление и структуру из заголовка umdprovider.h для регистрации событий в UMD:
- Функция UMDEtwLogMapAllocation
- Функция UMDEtwLogUnmapAllocation
- Функция UMDEtwRegister
- Функция UMDEtwUnregister
- перечисление UMDETW_ALLOCATION_SEMANTIC
- структура UMDETW_ALLOCATION_USAGE
См. также заголовок umdetw.h .
Сертификационные требования к оборудованию
Сведения о требованиях, которые должны соответствовать аппаратным устройствам при реализации этой функции, см . в документации по WHLK на Device.Graphics — UMDLogging.
Ознакомьтесь с функциями WDDM 1.2, чтобы ознакомиться с функциями, добавленными в Windows 8.