• Windows驱动wdf驱动开发系列(一)


    之前没有做过驱动开发,一切从〇开始。陆陆续续看了些书,windows设备驱动程序wdf开发等。但是总是云里雾里的。所以想一点一点的积累下在驱动方面的知识。

    首先我将记录下如何搭建调试环境?前提是wmware已装完毕,已有两台guest os. (xp 和win7)。下面针对两类系统的调试进行说明。

    驱动开发最好使用vmware虚拟机,好处不多说了。首先针对vmware虚拟机的设置(保证虚拟机是关机状态)

    1. 设置VM与Windbg通信的串口

    打开目标系统的Virtual Machine Setting选项,在Hardware中添加新硬件:1)选择Serial Port2serial Port Type 选择“Output to named pipe”;3Specify Socket的选项如图1吧;4)最终的配置结果如图2所示。然后启动VM的目标系统吧。

    注意事项:一般情况下是串口2:Serial Port 2,原因是默认VM安装虚拟打印机占用Serial Port 1.

    图1 

    图1

    图2

    图2

    2. 设置Guest OS的启动项

    进入WinXP的虚拟机操作系统,打开系统盘(C:\),将文件夹查看选项全开了,那在C盘根目录下有一个叫boot.ini的启动项文件,先去掉只读属性,以文本文件的方式打开,拷贝原来的启动项,作如下修改:

    Multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com2 /baudrate=115200

    注意事项:如果步骤1中的serial port选择的是serial port 1是话,此处为com1.如果是serial port 2的话此处为com2.

    3.配置WinDbg的快捷方式

    在winddk的安装目录(C:\WinDDK\7600.16385.0\Debuggers)找到windbg.exe执行程序。在桌面创建快捷方式,并且修改属性如下:

    "C:\WinDDK\7600.16385.0\Debuggers\windbg.exe" -b -k com:port=\\.\pipe\com_1,baud=115200,pipe

    注意事项:host os 使用对应的windbg.exe,原因是windbg.exe有32和64位之分。

    • 针对win7驱动调试的设置
    1. WM和windbg的通信串口设置(同guest os为xp的设置一致)
    2. 设置guest os 启动项
    首先,运行msconfig进入引导tab页,点击高级选项,将调试选上,并且注意调试端口要和通信串口的设置保持一致,重启guest os.
    其次, 方法一:启动guest os后,以管理员权限启动dbgview.exe。
    方法二:如果想调试Kdprint的话可以修改注册表
    [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Debug Print Filter] DEFAULT=dword:0000000f
    3. 配置windbg的快捷方式(同guest os为xp的设置一致)

    •  单步调试

    1.  加载符号文件

    在windbg上键入:.reload

    键入:ld charsample

    键入:lm l 

    2.  设置断点

    点击菜单“File”-> ”OpenSource File…”, 选择驱动程序目录下的源文件queue.cpp并打开。将光标移动到某指令位置,使用F9设置断点,则该处代码显示为红色,就表示断点已经设置了。

    3. 使用F11可进行单步调试


  • 相关阅读:
    Fluent NHibernate之旅
    IOC之Unity
    使用AutoMapper实现Dto和Model之间自由转换
    javamail邮件发送
    webservice整合spring cxf
    spring 集成mongo配置
    mongodb安装 win7版
    freemarker之list和map
    servlet生命周期
    ArrayList和LinkedList和Vector源码分析
  • 原文地址:https://www.cnblogs.com/yongqiangyue/p/3984781.html
Copyright © 2020-2023  润新知