https://msdn.itellyou.cn/ 安装完成后,开始菜单中找到Windows Device Kits目录,查看帮助文档和编译demo
打开环境后,启动OACR(静态检测)程序,执行build -ceZ编译(其中c时清除之前的结果)
"D:\WinDDK\7600.16385.1\"是wdk的安装路径
check相当于debug、free相当于release
inf文件中,[string]设置前面%var%变量的取值 在wdm的src目录中找inx文件修改(wdm的inx只需去掉kmdf的配置项即可),添加makefile.inc文件,修改source文件,build自动生成inf文件
source中添加inf编译配置 INF_NAME=echo NTTARGETFILE0=$(OBJ_PATH)\$(O)\$(INF_NAME).inf PASS0_BINPLACE=$(NTTARGETFILE0)makefile.inc文件
_LNG=$(LANGUAGE) _INX=. STAMP=stampinf -f $@ -a $(_BUILDARCH) -k $(KMDF_VERSION_MAJOR).$(KMDF_VERSION_MINOR) $(OBJ_PATH)\$(O)\$(INF_NAME).inf: $(_INX)\$(INF_NAME).inx copy $(_INX)\$(@B).inx $@ $(STAMP)安装devcon install *.inf * 或者右键inf安装(有证书签名后才行,否则提示很多错误基本都和权限相关),查询节点devcon hwids * 或者devcon drivernodes * devcon安装失败可以在%windir%/inf/setupapi.dev.log中查看错误原因,devcon执行权限不够不产生日志 **以上操作解决安装问题,启动服务失败可能还是报577错误,代码签名是需要申请收费的,自己创建的windows不一定认可(伪造证书https://www.cnblogs.com/LyShark/p/11347609.html)
正常启动的方法,
开机F8禁用数字签名认证windbg连接虚拟机可以启动调试**进入测试模式,Bcdedit /set testsigning true禁用签名,bcdedit /set nointegritychecks on示例如下
DIRS= \ exe \ startio \ sys makefile文件,所有驱动makefile文件相同 !INCLUDE $(NTMAKEENV)\makefile.def source文件 TARGETNAME=cancel TARGETTYPE=DRIVER TARGETLIBS= \ $(DDK_LIB_PATH)\wdmsec.lib\ $(DDK_LIB_PATH)\csq.lib SOURCES=cancel.c cancel.rc MSC_WARNING_LEVEL=/W4 /WXbcdedit /copy {current} /d “Win7 Debug” //添加配置项 bcdedit /enum bcdedit /set {current} bootdebug on bcdedit /set {current} debugtype serial bcdedit /set {current} debugport 1 bcdedit /set {current} baudrate 115200
powershell查看当前端口号[System.IO.Ports.SerialPort]::getportnames() //查询本机端口号 打开串口确保powershell无异常
$port= new-Object System.IO.Ports.SerialPort COM1,19200,None,8,one $port.open()[System.IO.Directory]::GetFiles("\\.\pipe\") //查询打开的管道
windbg使用管理员权限vmware添加串口使用命名管道\\.\pipe\com3 可以设置reconnect,确定,虚拟机开机前连接即可调试如果还有问题,建议删除虚拟机配置中的打印机设备
或者使用virtualkd调试内核,比串口调试更快
拷贝target到虚拟机中安装启动vmmon连接指示灯绿色代表连接成功切换com1或com2调试,可能是端口问题