If you are receiving a report, but the values aren't what you expect, a protocol analyzer will show you what the device is sending:
http://janaxelson.com/development_tools.htm#analyzersA HID will send report data on receiving a token packet on the interrupt IN endpoint, assuming the endpoint has been armed to send data on receiving a token packet.
The Windows HID driver will accept a received report if the amount of data matches the report size in the report descriptor. If the report descriptor uses report IDs, the HID must send a report ID byte preceding the report data. If using the default report ID of zero, the report ID does not travel on the bus.