阅读:2597回复:7
driverstudio开发usb驱动
这几天一直在做这个事情,发现无论是deviceiocontrol调用devicecontrol,还是writefile调用write,readfile调用read,都没有真正进入到sys层面。用disassmble界面debug也看不到进入下层,creatfile的path信息是通过api得到的,与实际相符合,不知道问题出在哪里,有哪位高人给些提示。在下感激不尽。
|
|
|
沙发#
发布于:2011-05-30 11:58
经过半个月的努力,好使了。但是没有全部理解,还有很奇怪的现象。
|
|
|
板凳#
发布于:2011-05-30 13:23
首先工具要齐备,vs2003+ddk3790+ds3.2做sys驱动+app演示程序。
ds3.2的好处是生成的sys没有黄问号 我试过ds3.1,ds2.7都有黄问号,就是生成class没有usb闹得 ds里面有个drivermonitor是用作观察输出信息的 |
|
|
地板#
发布于:2011-05-30 14:59
WDM 模式驱动是分层结构,deviceiocontrol ,writefile 等调用是发生外层的。
|
|
地下室#
发布于:2011-05-30 15:14
ds生成的app能够进到write,read里面,ds3.2生成的代码没有直接的buildbulktransfer和submit函数,真是够折腾人的,弄到这一步算是有门了
|
|
|
5楼#
发布于:2011-05-30 15:20
http://blog.ednchina.com/panasonic_lin/1868639/message.aspx
这个网址的说明可以用,就是怎么用上了BuildinterruptTransfer代替了BuildBulkTransfer, 原来的ds3.1生成的代码一用就死机,原来是这样呀,pBuffer,而不是Mem,真是够可以的 |
|
|
6楼#
发布于:2011-05-30 15:30
多亏下位机已经做好了,通讯已经用libusb调通了,要不然的话,指不定想到哪里去呢。
|
|
|
7楼#
发布于:2011-06-01 13:03
GetOverlappedResult
今天又用到了这个函数,取得驱动里面的I.Information,否则还真不知道怎么正常取得readbyte值,真是够狠的,当然了,加长pBuffer指向的缓冲区一样能取得各种需要的参数,就不是很正规而已。 |
|
|