The ReadFile buffer should be at least report size + 1 byte for the report ID.
ReadFile returns when at least one report is ready or on a timeout if defined.
If the HID driver's buffer has multiple reports ready, ReadFile will return as many reports as fit in the buffer.
So if the HID is sending reports at a high rater, you can reduce the number of calls to ReadFile by using a large buffer and retrieving multiple reports at once.
For example, if the buffer is 130 bytes, if the HID driver has two or more 64-byte reports ready, ReadFile will return the oldest two reports. If the HID driver has one report ready, ReadFile will return that report.
The only way to find out how many reports are ready is to try to read them.
Jan