[windows驱动]windows8.1驱动调试前戏

时间:2022-01-20 06:40:23

人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行windows8.1的WDK调试所要做的准备工作。

软件安装:

1、VS2013。

2、WDK8.1

3、Windows Kits安装目录下的8.1\Romote\x86(x64)\wdk Test Target Setup x86-x86_en-us.exe(远程调试使用)

调试环境设置:

安装WDK8.1之后,驱动开发、部署、调试等工具都集成到VS2013 IDE中了,在进行调试之前,我们需要对开发环境做必要的设置:

1、准备目标主机

msdn文档:Provision a computer for driver deployment and testing (WDK 8.1)查看
1、在目标主机上安装操作系统,并把host、target computer加入相同的域和工作组;安装wdk。
C:\Windows\System32\drivers\etc
2、如果target computer开启了安全启动(secure boot),要关闭它。
3、在target computer上,安装WDK Test Target Setup x64-x64_en-us.msi(在C:\Program Files (x86)\Windows Kits\8.1\Remote\x64目录下)。
4、如果target computer安装的是N或者KN版本的windows,要另外安装媒体特性包,详见msdn文档。
5、如果target computer安装的是windows server,那么WDK Test Target Setup就会建立一个DriverTest文件夹。找到这个文件夹,右键->属性->在安全标签,给认证用户组以修改的许可。

Verify that the host and target computers can ping each other. Open a Command Prompt window, and enter pingComputerName.

2、目标主机的配置:

安装了WDK8.1之后,VS2013菜单栏多了Driver项。通过层次菜单项Driver->Test->configure computers->add a new computer来配置目标主机:

第一是远程登录,这个好像需要目标主机的管理员账号才行,普通账号不能登录到。

第二是调试的连接类型,有串口、网口、USB口等多种连接类型,大家应该都更倾向于网口吧,简单方便。但需要注意,主机和目标机器都必须是Windows8或以上版本才能采取网口连接方式,如果有任何一台主机是Windows7,那只能采取其他连接方式了。

3、驱动部署到目标机器

打开package属性页(package工程加黑而不是package文件夹加黑),打开Driver Install->Deployment标签页,选择Enable deployment;选择目标主机名;其它默认就可以了。这样,当我们生成解决方案时(注意是package工程),IDE会自动编译驱动工程并自动把驱动部署到目标远程主机上去。生成成功后,目标远程主机会出现这样一个文件夹:c:\DriverTest,我们可以查看此文件夹下是不是出现了我们所要调试的驱动来验证生成成功与否。

注意:在生成解决方案之前,我们要正确选择解决方案配置和解决方案平台。对于我而言这两者分别是Win8.1 debug和X64。

3、安装驱动

在目标机器上,打开设备管理器,按照以下步骤安装调试驱动

  1. In the Action menu, click Add Legacy Hardware, and the Add Hardware Wizard appears. Click Next and then Next again.
  2. In the Add Hardware window, select Show All Devices.
  3. In the Manufacturer list in the left pane, click Microsoft.
  4. You should see the AVStream Simulated Hardware Sample in the Model pane on the right. Click this and then click Next.
  5. Click Next again to install the driver, and then click Finish to exit the wizard.

开始调试:远程驱动调试不能像一般程序那样直接点击开始调试就可以的,要通过工具->附加到进程对话框来设置。譬如调试内核模式驱动,那么传输(transport)选择Windows kernel mode debugger;限定符(qualitier)选择目标机器名。

结束调试:常规结束方法,点击停止调试就可以了。