windows显示驱动开发-调试间接显示驱动程序(一)

间接显示驱动程序 (IDD) 是 UMDF 驱动程序,因此 UMDF 调试文档(例如 确定 UMDF 驱动程序加载失败的原因或 UMDF 设备无法启动)是一个很好的起点。注意本文使用windbg进行调试。

注册表控件

Indirect Display Driver Class eXtension (IccDx) 具有一些可用于帮助调试 IDD 的注册表设置。 所有注册表值都位于 HKLM\System\CurrentControlSet\Control\GraphicsDrivers 注册表项下。

值名称 详细信息
TerminateIndirectOnStall 如果监视器在帧可用后 10 秒内未处理帧,则零值将禁用终止驱动程序的监视器。 任何其他值都将使监视器保持启用状态。
IddCxDebugCtrl 启用 IddCx 的不同调试方面的位字段。 请参阅下表。
IddCxDebugCtrl 值
IddCxDebugCtrl 中的位 含义
0x0001 当 IddCx 检测到错误时中断调试器
0x0002 加载 IddCx 时中断调试器
0x0004 卸载 IddCx 时中断调试器
0x0008 调用 IddCx DriverEntry 时中断调试器
0x0010 调用驱动程序绑定时中断调试器
0x0020 调用驱动程序启动时中断调试器
0x0040 调用驱动程序取消绑定时中断调试器
0x0080 禁用 DDI 监视器,该监视器终止驱动程序在 DDI 调用中花费的时间过长
0x0100 未使用
0x0200 启用调试覆盖,请参阅下文
0x0400 在框架中的脏凹槽上覆盖彩色 alpha 框;需要设置0x0200
0x0800 将 pref 统计信息叠加到帧中
0x2000 IddCx 将查询每个帧的捕获帧注册表值;需要设置0x0200

若要运行任何覆盖函数,必须使用 D3D11_CREATE_DEVICE_BGRA_SUPPORT 标志创建由驱动程序创建并传递给 IddCxSwapChainSetDevice 的 Direct3D 设备。

IddCx WPP 跟踪

Iddcx 使用 WPP 基础结构 来记录调试信息。 WPP 信息可以捕获到文件中,当此捕获正在进行时,它可以显示在内核调试器中。

捕获 IddCx WPP 跟踪

可通过多种方式启用 WPP 跟踪。 一种便捷方法是在 logman.exe 程序中使用 生成。 如果将以下行复制到批处理文件并从提升的命令提示符运行,则会将 IddCx WPP 跟踪收集到 IddCx.etl 文件中。

复制代码
@echo off  
echo Starting WPP tracing....
logman create trace IddCx -o IddCx.etl -ets -ow -mode sequential -p  {D92BCB52-FA78-406F-A9A5-2037509FADEA} 0x4f4 0xFF
echo Tracing enabled
pause
echo Stopping WPP tracing....
logman -stop IddCx -ets
相关推荐
华清远见成都中心27 分钟前
分享一个驱动开发工程师学习路线图
驱动开发·学习
DeeplyMind14 小时前
linux drm子系统专栏介绍
linux·驱动开发·ai·drm·amdgpu·kfd
Shang180989357261 天前
T41NQ/T41N高性能低功耗SOC芯片 软硬件资料T41NQ适用于各种AIoT应用,适用于智能安防、智能家居,机器视觉等领域方案
驱动开发·嵌入式硬件·计算机视觉·fpga开发·信息与通信·t41nq
amberman1 天前
解读 PCIe Gen6 RAS
驱动开发·fpga开发·硬件工程
逻极2 天前
AI 规范驱动开发“三剑客”深度对比:Spec-Kit、Kiro 与 OpenSpec 实战指南
人工智能·驱动开发·ai·agent
逻极2 天前
Claude Code 实战:Spec-Kit、Kiro、OpenSpec 规范驱动开发三剑客
ide·人工智能·驱动开发·ai·自动化
范纹杉想快点毕业3 天前
100道关于STM32的问题解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。
驱动开发·单片机·嵌入式硬件·fpga开发·硬件工程
进击大厂的小白3 天前
35.linux的定时器使用
驱动开发
winner88814 天前
嵌入式Linux驱动开发全流程:工具协作+核心概念拆解(从入门到理解)
linux·运维·驱动开发
Evan_ZGYF丶4 天前
深入解析CFS虚拟运行时间:Linux公平调度的核心引擎
linux·驱动开发·嵌入式·bsp