阅读:1318回复:5
用户自定义的请求为什么发不出去?
我在编软件的时候遇到一个奇怪的问题,不知道有没有人碰到过:就是主机发送用户自定义请求的命令到设备的时候为什么总发不出去?根据公司的例子用的是这个函数
bResult = DeviceIoControl (hDevice, IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST, &myRequest, sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL), buffer, bufferSize, (unsigned long *)&nBytes, NULL); 这个命令行在cpress公司提供的例子程序里运行结果bResult=1,可是我把它移植到自己的程序中CreateFile()已经成功了,可是bResult=0,不知道怎么回事. (我的myRequest是直接定义的: myRequest.request = (BYTE)0xB3; myRequest.value =(WORD)0x00; myRequest.index =(WORD)0xBEEF; bufferSize =16; myRequest.direction=1; myRequest.requestType=2; myRequest.recepient=0; ) 谢谢! |
|
沙发#
发布于:2004-12-15 08:35
你设备收到request的操作是什么
是向主机发16个数据? 有时nbytes和bufferSize不相等也会说失败的,但是其实已经有数据出来了。 |
|
|
板凳#
发布于:2004-12-15 13:56
设备应该返回一个数据 (0xB3)
buffersize和nbytes好像没有冲突,刚试过,nbytes是指返回数的个数。 |
|
地板#
发布于:2004-12-15 14:42
我认为对于你的主机来说命令应该发过去了(可以通过侦测总线数据
来确认),如果是这样的话,说明你的设备没有对他进行响应,最大的可能是不识别命令格式.分析一下固件吧. |
|
|
地下室#
发布于:2004-12-15 20:28
我用的固件是cpress公司提供的例子FX2_to_extsyncFIFO.hex,用contral panel 可以发送0xB3 的。
|
|
5楼#
发布于:2004-12-15 20:49
刚用GetLastError()试了一下,提示说是参数不对,可是是哪个参数呢?
|
|