阅读:1566回复:1
usb driver中NTSTATUS SetInterface(...)中的 (PUSBD_INTERFACE_INFORMATION*) ->Pipes[i].MaximumTransfer
想修改驱动读写函数的 最大读写值
是通过deviceiocontrol来读的那个,定义如下: #define IOCTL_EZUSB_BULK_READ CTL_CODE (FILE_DEVICE_UNKNOWN, \ Ezusb_IOCTL_INDEX+19,\ METHOD_OUT_DIRECT, \ FILE_ANY_ACCESS) 里面涉及一个 (PUSBD_INTERFACE_INFORMATION*) ->Pipes.MaximumTransferSize 量,应该是usb的缓冲大小, 我这里设置成 interfaceInformation->Pipes.MaximumTransferSize = (64*1024) -1; 在下面这个函数里设的 NTSTATUS SetInterface( IN PDEVICE_OBJECT fdo, IN UCHAR InterfaceNumber, IN UCHAR AlternateSetting ) 但是我不清楚这个量可以有多大改动, 这个驱动是在windows下运行的,应该可以改得大点,对吗? 想请假大侠们,可以设得大点嘛!?有极限值嘛!? PS: 我得这个USB是2.0的,呵呵,采用的读是High Speed的。 在线等 |
|
|
沙发#
发布于:2004-12-07 11:19
还想请假的是,应用程序通过BOOL DeviceIoControl(
HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped); 里来用METHOD_OUT_DIRECT方式 读的时候,之前分配的一个lpOutBuffer以及她的大小, 这个和驱动里面实现的 UsbBuildGetInterruptOrBulkTransferRequest( IN OUT PURB Urb, IN USHORT Length, IN USBD_PIPE_HANDLE PipeHandle, IN PVOID TransferBuffer OPTIONAL, IN PMDL TransferBufferMDL OPTIONAL, IN ULONG TransferBufferLength, IN ULONG TransferFlags, IN PURB Link ); 里的 TransferBufferMDL 指针地址一致嘛!? 呵呵,请大侠不吝赐教。我知道有资料讲的,但是找不到,一时! 不好意思! 谢谢了 |
|
|