1 PCI驱动的安装
修改inf文件的hardware id
%dposaf.DeviceDesc%=dposaf_Device, PCI\VEN_10B6&DEV_2506 ; TODO: edit hw-id
//自动生成kdmf时有TODO项,在此可以看到到我开发使用的hardware id是PCI\VEN_10B6&DEV_2506
这个是在硬件插入时设备管理器中查看得到 hardware ID
2 联调使用的工具,在WIN7 32BIT上使用了dbgview,这个工具也有64bit版本,使用DbgPrint打印驱动LOG
在win10上使用traceview,可以打印TraceEvents LOG
但traceview更方便,只要使用框架自动生成的trach.h中的Tracing GUID 即可连接,并且只有驱动自己的打印,不会有在win10 dbgview中的太多其它进程的刷屏打印,导致LOG检索很麻烦
3 PCI驱动的BAR地址,可以通过WINDOWS查看,还可以通过DOS系统查看,并且DOS中的更准确
4 建议驱动框架先用kmdf自动生成,并且可以使用更新或者devcon工具安装可用,再编写驱动代码,这样驱动安装过程不会有问题。
win7只需要 .sys .inf win10必须在测试模式下,使用.sys .inf .cat缺一不可
5 关于各种GUID,
trace.h中的GUID是为了让traceview可以打印到LOG
WdfDeviceCreateDeviceInterface函数使用的GUID,是给应用程序提供一个接口,保证应用程序能够找到驱动,然后在应用中使用DeviceIoControl等命令就可以和驱动通信。而整个通信过程是框架实现,我们只要编写好callback函数就可以了。