WDK.vsix路径在C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019 或者 C:\Program Files (x86)\Windows Kits\10\Vsix。
这个插件的版本和visual studio的版本要对应,最新的WDK(windows 10 版本)的插件对应的只能安装在visual studio 2019
需要设置网络连接方式为桥接
需要删除打印机(如果有的的话)
需要添加一个串行端口,并设置命名管道属性和开启CPU轮询
注意:
VMware player创建命名端口后,启动虚拟机可能会提示 serial0: Unable to create the server-side instance of the "***" named pipe: The filename, directory name, or volume label syntax is incorrect.
这可能因为管道的名称格式不对,我试了下设置成\\.\pipe\com<数字>的格式(比如 \\.\pipe\com1)成功了,网上有人设置成.\pipe\com<数字>也成功了
如果构建的driver是基于x64平台,则msi路径如下:
C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi
安装这个msi是后面visual studio部署要用,不安装的话用visual studio部署会失败
以管理员身份打开CMD, 依次输入以下命令
bcdedit
bcdedit /dbgsettings serial baudrate:115200 debugport:1
bcdedit /copy {current} /d DebugEntry
这个命令会生成一串GUID,保存这个GUID,后面的ID用此GUID替换
bcdedit /displayorder {current} {ID}
bcdedit /debug {ID} ON
打开windows Registry editor, 修改注册信息:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
如果没有这个key就添加这个key
在这个key下添加或修改 “DEFAULT" (是DWORD 类型,32位或64位应该无关),值为 0xffffffff
首次部署target device列表是空的需要添加device,添加device时,display name可以随便写,Network host name填VM的ip地址。
填完后一直点next,等visual studio自动准备好target(也就是VM)的环境,然后点finish完成设备添加,回到部署对话框。
部署对话框中要添加hardware ID, 这个id在生成inf文件中,我的文件中内容是:
[Standard.NTamd64]
%hello_driver.DeviceDesc%=hello_driver_Device, Root\hello_driver ; TODO: edit hw-id
其中amd64表示开发平台因为我构建设置的平台是x64,Root\hello_driver就是hardware ID
VM上以管理员身份运行CMD,输入以下命令:
C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe
INF文件 一般在C:\DriverTest\Drivers, hardware ID就是上面提到的hardware ID。这种安装方式是hello world教程里提供的,不同的driver有不同的安装方式。
如果INF文件提供了DefaultInstall属性,可以直接右键点击INF文件然后点击安装。
启动方式和INF文件里StartType的配置有关,此项配置在Services Section里配置。
如果配置的是SERVICE_DEMAND_START,则需要手动启动driver。以filter driver为例,启动命令是:FLTMC load [ driverName ]
windbg.exe -y -k com:pipe,port=\\.\pipe\com1,resets=0,reconnect
执行成功windgb会显示等待连接
debug view 查看debug信息是更简单方便的信息,用搜狗或者百度去查找debug view下载地址结果都是华军软件软之类的下载站。
直到一次用Bing搜索才发现微软提供了debug view下载。唉,国内的搜索引擎真的毁人青春。