Bulk Tansfers Using FX2/FX2LP

Question: Is there any reason for the IOCTL_EZUSB_BULK_READ, used in the ezusb.sys general purpose driver to transfer blocks less than or equal to 64K each time? If I want to transfer, say, 2 MB in just one call, what changes would I have to make in the driver source code (ezusbsys.c) in order to make it work?

 

Answer:

Search for the string "MaximumTransferSize" to find the two locations in "ezusbsys.c" where this value is defined. Cypress chose 64K as a convenient multiple of the maximum size of a bulk transfer data packet (512 bytes) as defined in the USB 2.0 Specification. The USB host stack may also limit each URB to be only 64K long.