2、 写USB功能驱动需要了解的内容
a. 驱动编译方法
各种入门书上都有介绍,用DDK的Dos环境编译时,错误信息会在Dos界面显示,如果这些信息不能定位问题,可以到代码目录下找名字为buildxx的log文件。
b. 驱动与设备的关联
驱动与设备的关联是靠INF文件来指定的。简单来说只要把DDK中提供的USB驱动示例中的INF文件中的VID_XXXX和PID_XXXX中的XXXX换成自己设备的VID和PID值,[SourceDisksFiles]节中BULKUSB.sys 换成自己的驱动文件名称就可以使驱动和设备关联。更多INF文件介绍可以参考相关介绍文档。
c. 设备自定义的命令
自定义的设备,一般都会自定义一些控制命令,在写驱动时,需要了解这些命令的作用,在调试时方便定位问题所在。
此处需要把IoControl命令和设备命令区分开,IoControl命令是应用程序与驱动进行交互的命令,IoControl命令的生成与设备没有直接关系,可以随意设置只要不与驱动的标准命令发生冲突就可以;设备命令是在令牌阶段使用,也即Setup包,设备命令由硬件设计者要定义,设备命令是主机和设备通信的第一步。