开始学windows内核或驱动编程注意事项

       1       vmware 添加虚拟串口:

    \\.pipe\com_1
     This end is the server
     The other end is an application

   2 在虚拟机XP系统的boot.ini中添加:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debug /debugport=com1 /baudrate=115200

   3  设置环境变量 _NT_SYMBOL_PATH

     值为srv*d:\mysymbols*http://msdl.microsoft.com/download/symbols

   4 在windbg.exe的快捷方式里的“目标”中的“...windbg.exe”后增加启动参数:

     windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe

    注意windbg.exe的全路径是在双引号里面的,而刚添加的命令行参数应该在引号外。

   5  但是按照 通常的步骤做下去之后,运行虚拟机中的xp系统后,再运行windbg,虽然windbg的启动参数都设置正确,但是在windbg的窗口里,显示 

Opened \\.\pipe\com_1
Waiting to reconnect...
最底部显示的: Debuggee not connected.

这是因为在Edit virtual machine settings里看下你那个串口是不是叫Serial port 2,如果是,问题就在这里,就是多了那个2。

关闭虚拟的xp系统,把这个串口删掉,然后把那个printer也删掉,然后重新添加一个串口就可以了,这个时候串口就叫Serial port了。然后就可以正常连接了

    6 编译一个常见的first.c的演示驱动

        在这里会遇到一个问题是。出现编译错误:WDK cannot open include file ntddk.h 问题解决

           这是因为与first.c同一文件夹的

        sources文件缺少INCLUDES指令

        第一行加上:INCLUDES=$(WDMROOT);$(DDK_INC_PATH) 即可编译通过。

    7 将编译好的first.sys用srvinstw.exe安装至虚拟机xp里

      运行前需要给主机的windbg添加上first.sys的符号文件路径。

      然后打开虚拟xp的命令行工具,输入net start first。 观察主机windbg的输出显示

      然后再输入net stop first。观察主机windbg的输出显示。

开始学windows内核或驱动编程注意事项_第1张图片开始学windows内核或驱动编程注意事项_第2张图片



你可能感兴趣的:(驱动,windbg,WINDOWS内核)