Jan,
I used the USB-IF's HID Descriptor Tool to generate a HID report descriptor for an input and output report. My REPORT_COUNT for each report is 64 bytes.
It was my understanding that each field (byte) in REPORT_COUNT must be associated with a USAGE number, so I attempted to enter a USAGE range from 1 to 64 into the Descriptor Tool. The tool let me enter a USAGE_MINIMUM of "Vendor Usage 1", which generated a value of 0x01. It then let me enter a USAGE_MAXIMUM of "Vendor Usage 2", which generated a value of 0x02. This is how it parsed, without finding any errors:
USAGE_PAGE (Vendor Defined Page 1) 06 00 FF
USAGE (Vendor Usage 1) 09 01
COLLECTION (Application) A1 01
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (255) 26 FF 00
REPORT_SIZE (8) 75 08
REPORT_ID (1) 85 01
REPORT_COUNT (64) 95 40
USAGE_MINIMUM (Vendor Usage 1) 19 01
USAGE_MAXIMUM (Vendor Usage 2) 29 02
INPUT (Data,Var,Abs) 81 02
REPORT_ID (2) 85 02
REPORT_COUNT (64) 95 40
USAGE_MINIMUM (Vendor Usage 1) 19 01
USAGE_MAXIMUM (Vendor Usage 2) 29 02
OUTPUT (Data,Var,Abs) 91 02
END_COLLECTION C0
Shouldn't this have given me USAGE errors? I can manually change USAGE_MAXIMUM from 0x02 to 0x40 (64), but this descriptor only had 2 USAGEs for 64 fields, and I thought I needed 64 USAGE numbers for the 64 fields in each REPORT_ID.