阅读:3466回复:4
usb的bulk传输的读写问题
我想通过USB的bulk协议对U盘写一些自己定义的CBW command,现在通过SetupDiGetClassDevs已经得到了devicepath,然后用createfile也可以正确创建handle,但是用writefile写的时候总是报错错误返回值是87,creatfile部分的代码如下
char sPipeNameIn[MAX_PATH]; char sPipeNameOut[MAX_PATH]; ::strcpy(sPipeNameIn, sDeviceName); ::strcat(sPipeNameIn, "\\PIPE1"); ::strcpy(sPipeNameOut, sDeviceName); ::strcat(sPipeNameOut, "\\PIPE2"); m_hPipeIn = ::CreateFile(sPipeNameIn, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); m_hPipeOut = ::CreateFile(sPipeNameOut, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); sDeviceName是devciepath,这些创建的句柄都是正确的,现在用的是微软的系统usbbulk驱动,端点应该没有错误,写入就不行,我写入的函数为 WriteFile(m_hPipeOut, pBuffer, ulBufferSize, pBytesWritten, NULL),我查了好几天的资料但是都没有得到解决的办法,哪位能指教一下,谢谢! |
|
沙发#
发布于:2010-03-16 16:14
我现在遇到相同问题,请问是怎么解决的???
|
|
板凳#
发布于:2010-03-16 16:48
m_hPipeIn = ::CreateFile(sPipeNameIn,
GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); 划线的部分写的有问题 |
|
|
地板#
发布于:2010-03-17 09:43
修改了这部分也是相同错误啊?
m_hPipeIn = ::CreateFile(sPipeNameIn, GENERIC_READ , FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); |
|
地下室#
发布于:2010-12-14 14:45
我也有类似的问题啊,写入和读取Bulk的,就是不成功?
|
|