关于用应用程序读写Usb接口的问题(暴难)!解决就给分

zxwitsme 2004-09-29 11:51:07
查找到usb的device name并且用createfile打开pipe02以后,用writefile写数据老是失败,是什么原因呢?
CUsbAccess mx1usb;
UpdateData(TRUE);
LPGUID pGuidMx1 = (LPGUID)&MX1USB_GUID;
//if(""==m_PipeName) MessageBox("Open Usb Device");
char *m_PiPeNameChar=m_PipeName.GetBufferSetLength(m_PipeName.GetLength());
hMx1Usb=mx1usb.OpenUsbPipe(pGuidMx1,m_PiPeNameChar); //打开改USB的pipe
//开始写数据
int bResult;
DWORD nBytes;
UpdateData(TRUE);
DWORD m_WriteDataSize=m_WriteData.GetLength();
char *m_WriteDataChar=m_WriteData.GetBufferSetLength(m_WriteDataSize);
bResult=WriteFile(hMx1Usb,m_WriteDataChar,m_WriteDataSize,&nBytes,NULL);
if(bResult!=0)
MessageBox("Write Succeed!","",0);


...全文
323 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuaawenlin 2004-10-06
  • 打赏
  • 举报
回复
呵呵,这个我也很想知道呀,好象只能用DDK里面的函数,再有就是编写驱动,不知道在那有这方面的资料。找到发个帖子告诉大家
roger_ding 2004-09-30
  • 打赏
  • 举报
回复
SCSI命令的发送例子在Windows DDK里有
zxwitsme 2004-09-29
  • 打赏
  • 举报
回复
读写u盘需要使用管道吗?跟普通的文件没有什么区别吧。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不使用管道那怎么知道数据是被写到ep0还是epx的buffer里面呢?
zxwitsme 2004-09-29
  • 打赏
  • 举报
回复
使用DeviceIoControl可以不和驱动程序通讯吗?
怎么在DeviceIoControl里面发送scsi命令呢,请赐教!
DeviceIoControl的第二个参数好像就是和驱动通信的,如果要发送scsi命令,怎么设置第二个参数呢?
谢谢!
nwpulipeng 2004-09-29
  • 打赏
  • 举报
回复
混分帮顶
roger_ding 2004-09-29
  • 打赏
  • 举报
回复
如果需要读写指定device name的usb
建议使用DeviceIoControl,使用SCSI命令发送SCSI_READ6,SCSI_WRITE6之类的命令
会思考的草 2004-09-29
  • 打赏
  • 举报
回复
读写u盘需要使用管道吗?跟普通的文件没有什么区别吧。
zxwitsme 2004-09-29
  • 打赏
  • 举报
回复
我打开的设备是U盘,它使用的是U盘的默认驱动,那么usb的pipename是什么呢,去哪里获得pipename的名称?

谢谢各位了

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧