WIN10环境下使用串口跟踪WDF驱动程序

WDF驱动开发调试环境的搭建还是比较麻烦的,通过串口来调试相对来说简单一点,现将我实验的具体步骤记录一下。

一  搭建硬件环境

    需要两台电脑,一台电脑主板有原生串口(usb转串能不能用我没试),安装待调试硬件和驱动程序,称为目标机(target)。另一台电脑安装了vs2015+sdk+wdf10驱动开发环境,使用一条usb转串口线,这台机称为主机(host)。

详情请参考微软文档 Setting Up Kernel-Mode Debugging over a Serial Cable Manually

二 目标机设置

 以管理员权限打开命令行窗口,

首先打开windows的驱动测试签名模式,输入bcdedit /set testsigning on

重启电脑,可以看见屏幕右下角显示已经进入测试模式

 

输入bcdedit /debug on 打开debug模式

然后设置debug参数,bcdedit /dbgsettings serial debugport:1 baudrate:115200

设置完成,输入bcdedit /dbgsettings,查看一下debug参数

正确无误,我们使用串口1(COM1)。

三 主机设置

双击打开windbg.exe程序(通常路径是:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64),选择菜单File > Kernel Debug > COM,输入参数Baud Rate :115200 , Port:com8,(我的usb转串是com8,你需要根据实际填入你的usb转串的串口号)

 

点击确定,主机等待目标机连接 。。。

四  重启目标机,可以看到主机显示的跟踪信息

 

这时候,可能你的驱动程序的跟踪信息没有打印出来,这是因为被windows过滤掉了,你可以添加注册表项[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:00000008,重启后可以看到你的KdPrint或者DbgPrint打印的跟踪信息。

但是通过修改注册表的方法,会使windbg输出很多不相关的信息。还有一种方法不修改注册表,而是修改KdPrintEx函数的打印信息的输出等级,将DPFLTR_INFO_LEVEL提升为DPFLTR_ERROR_LEVEL,就可以输出打印信息

将KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "DPFLTR_INFO_LEVEL: KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));

修改为KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "DPFLTR_ERROR_LEVEL: KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));

就可以跟踪你的驱动程序了。

好了,到了这一步,以后可以进一步导入符号表,使用windbg更高级的功能了。

<p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">我将带领大家学习WDM驱动开发,包括重要的理论与实践。</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">我们逐步深入,在系列一和二的基础上慢慢推进,开始学习WDF驱动模型,包括面向对象和事件机制、重要的WDF对象,具体章节包括:</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">1)WDF编程框架:面向对象和事件机制</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">2)WDF重要对象:驱动对象、设备对象、IO队列、IO请求、等</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">3)事件回调函数:从派遣函数到事件回调函数的原理流程解析</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">4)WDF过滤驱动:掌握WDF对IRP的处理,以及过滤驱动的应用</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">5)WDF驱动安装:掌握驱动安装原理和INF文件的重要概念</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"> </p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">Windows内核开发寄语:</strong></p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">1、Windows内核非常复杂,相关图书和课程都很少,让很多初学者望而生畏;没关系,我带领大家别有兴致地来领略Windows内核的神秘,解开面纱,层层深入。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">2、本书以Windows10x64位基准,所有程序都编译、运行在Vmware的Win10x64位机器上。vs2019+wdk</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">3、内核学习并不可怕,授人以鱼不如授人以渔,艺多不压身,学习能提升人的综合能力,尤其是<span style="margin: 0px; padding: 0px; color: #ff0000;"><strong style="margin: 0px; padding: 0px;">核心技术</strong></span>。</p>
相关推荐
http://winchiphead.com/download/index.htm 南京沁恒电子有限公司 文件名 文件说明 版本 大小 本地下载 CH451DS1.PDF CH451芯片的中文版说明书 4.2 280KB CH365DS1.PDF CH365芯片的中文版说明书 1.4 270KB CH376DS1.PDF CH376芯片的中文版说明书 1.0 277KB CH372DS1.PDF CH372芯片的中文版说明书 3.5 209KB CH374DS1.PDF CH374芯片的中文版说明书 2.1 217KB CH375DS1.PDF CH375芯片的中文版说明书 3.5 225KB CH375DS2.PDF CH375芯片的中文版说明书2 3.4 96KB CH340DS1.PDF CH340芯片的中文版说明书 1.4 137KB CH341DS1.PDF CH341芯片的中文版说明书 2.4 198KB CH341DS2.PDF CH341芯片的中文版说明书2 2.3 182KB CH352DS1.PDF CH352芯片的中文版说明书 1.0 210KB CH452DS1.PDF CH452芯片的中文版说明书 2.2 335KB CH432DS1.PDF CH432芯片的中文版说明书 1.1 213KB CH423DS1.PDF CH423芯片的中文版说明书 1.2 202KB CH361DS1.PDF CH361芯片的中文版说明书 0.0 1KB CH371DS1.PDF CH371芯片的中文版说明书 0.0 1KB -------------------------------------------------------------------------------- 文件名 文件说明 版本 大小 本地下载 CH451IF.ZIP CH451的MCS51和PIC单片机的接口程序 1.2 8KB CH451PLN.PDF 数码管显示驱动和键盘扫描的方案比较 2.1 101KB CH365DRV.ZIP CH365的Windows驱动程序和动态库 1.6 50KB CH365EVT.ZIP CH365的升级ISA评估板以及PCI设计参考 2.0 1.18MB CH365ED.ZIP 用CH365设计WIN终端卡/电子盘的方案 1.2 1.28MB CH364ISL.PDF 用CH364设计硬盘和网络安全隔离卡的方案 1.0 92KB CH365CAN.ZIP 用CH365设计PCI总线CAN接口卡的方案 1.2 207KB CH362ROM.ZIP 用CH36x通过Boot-ROM扩展BIOS的方案 4.2 244KB CH372DRV.ZIP CH372/CH375的Windows驱动程序/动态库 2.5 37KB CH372EVT.ZIP CH372+CH451的评估板说明和USB设计参考 2.4 996KB CH372DBG.ZIP WINDOWS下CH372/CH375的调试工具程序 1.4 303KB UPD371.PDF 用CH372或CH375替换CH371的说明 1.1 98KB CH375EVT.ZIP CH375的51单片机读写U盘评估板的说明 3.0 886KB README.PDF USB芯片HOST电路及PCB设计的注意事项 2.5 195KB CH375HST.ZIP CH375主机方式应用参考(USB打印机等) 1.2 122KB CH375HM.ZIP U盘文件读写模块的说明,单片机读写U盘 2.4 838KB CH375HMU.ZIP CH375的U盘模块的升级/配置/演示工具 3.2 203KB CH341SER.ZIP USB转串口CH341的WINDOWS驱动程序 3.1 128KB CH341PRT.ZIP USB转打印口CH341的WINDOWS驱动程序 1.2 110KB CH341PAR.ZIP USB转并口CH341的WINDOWS驱动程序 2.2 51KB CH341EVT.ZIP CH341综合功能评估板说明及应用参考 1.1 722KB CH375X86.ZIP 8086/X86嵌入式PC工控机读写U盘的方案 1.9 663KB CH452IF.ZIP CH452单片机C接口程序和MCS51汇编接口 1.2 12KB USB_SER.PDF USB转串口Serial及USB转RS232模块说明 1.3 244KB CH374EVT.ZIP 评估板说明及单片机使用U盘存储应用参考 1.3 734KB FDD_UDD.TXT 仿软驱接口的U盘驱动器的说明 1.2 1KB -------------------------------------------------------------------------------- 文件名 文件说明 版本 大小 本地下载 SAMPLE.DOC 芯片样品申请单 1.1 21KB PACKAGE.PDF 封装尺寸说明 1.5 176KB
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页