关于用应用程序读写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);


...全文
286 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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的名称?

谢谢各位了
  • 打赏
  • 举报
回复
相关推荐
发帖
硬件/系统
加入

2603

社区成员

VC/MFC 硬件/系统
申请成为版主
帖子事件
创建了帖子
2004-09-29 11:51
社区公告
暂无公告