查找到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);
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);
建议使用DeviceIoControl,使用SCSI命令发送SCSI_READ6,SCSI_WRITE6之类的命令
怎么在DeviceIoControl里面发送scsi命令呢,请赐教!
DeviceIoControl的第二个参数好像就是和驱动通信的,如果要发送scsi命令,怎么设置第二个参数呢?
谢谢!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不使用管道那怎么知道数据是被写到ep0还是epx的buffer里面呢?