Use the version of the Read() method where you specify the maximum number of bytes to read and set it to a large value.
byte[] Read(
long count
)
By default the Visa.Net library uses a buffer of 1M, but that isn't large enough for your file so you are only getting 1M of it.
Another option would be to make multiple reads until you perform a read that returns fewer bytes than you set count to. You could use the following version of the Read() method and set the parameters so that the data keeps getting put into the same byte array.
void Read(
byte[] buffer,
long index,
long count,
out long actualCount,
out ReadStatus readStatus
)
Easiest thing to do though, just set the count to value larger than the size of the file being transferred.