阅读:1841回复:3
快救救我!!!
请问各位谁用过IOCTL_EZUSB_ISO_WRITE, 请给我一个例子好吗?
我用它往外传数据,不知为什么,就是传不过去。我的程序是: IsoControlout.PacketSize = 64; pipenumout = 1; bResult = DeviceIoControl (hDevice, IOCTL_Ezusb_RESETPIPE, &pipenumout, sizeof(ULONG), NULL, 0, &outnBytes, NULL); if (bResult != TRUE) {SendDlgItemMessage(IDC_LIST1,LB_ADDSTRING,0,(LPARAM)\"Pipe Reset Failed\"); CloseHandle (hDevice); return; } // perform the ISO transfer IsoControlout.PacketCount = 16; IsoControlout.PipeNum = 1; IsoControlout.BufferCount = 2; IsoControlout.FramesPerBuffer = 8; bytesToRead = IsoControlout.PacketCount * (IsoControlout.PacketSize + sizeof(USBD_ISO_PACKET_DESCRIPTOR)); outbuffer=(PUCHAR)malloc(bytesToRead); for(i=0;i<IsoControlout.PacketCount;i++) { for(j=0;j<IsoControlout.PacketSize;j++) { outbuffer[i*IsoControlout.PacketSize+j]=(char)j; } } bResult= DeviceIoControl (hDevice, IOCTL_EZUSB_ISO_WRITE, &IsoControlout, sizeof(ISO_TRANSFER_CONTROL), outbuffer, bytesToRead, &outnBytes, NULL); if (bResult = TRUE) { SendDlgItemMessage (IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)\"Write ISO Buffer sucessed\"); } else { SendDlgItemMessage (IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)\"Read ISO Buffer Failed\"); return; } 请各位大侠指点。 |
|
沙发#
发布于:2001-11-28 01:45
在设备初始化时,是否配置了接口。
|
|
|
板凳#
发布于:2001-11-28 09:17
我好象没有,应该怎样配置,我在设备边我只在写描述符时指定了端口码和方向。还望zlhlyy大哥多多指教。
|
|
地板#
发布于:2001-11-29 21:36
现提供一sample,供参考:
//设置USB接口配置 SetInterface.alternateSetting=2; SetInterface.interfaceNum=0; RetCode=DeviceIoControl(hDevice, IOCTL_Ezusb_SETINTERFACE, &SetInterface, sizeof(SET_INTERFACE_IN), NULL, 0, &nBytes, NULL); if (RetCode!=TRUE) { return FALSE; } |
|
|