Can a USB HID keyboard report be more than 8 bytes in size? If yes what else is it related with except the report descriptor.
I would like to change the size of report and I'll accordingly modify the report descriptor. Is that all or should I modify any other descriptors as well.
I also have a doubt that if I increase the report size do I need to modify the endpoint buffer. Can someone help me understanding the relation between endpoint and report size?
HID Report descriptor is a descriptor for data stored in the reports that gets in and out of your device. Host knows the size of input reports by parsing this descriptor. If you want to change any report size, you need to modify its descriptor accordingly.
HID input reports are transported through USB Interrupt endpoints. Here you have limitations depending not on HID, but on USB version used: 8 bytes for low speed, 64 bytes for full speed, 1024 bytes for high speed. You should set relevant value in wMaxPacketSize
field of the matching endpoint descriptor.
Your host application should submit a large-enough buffer to your host stack, of course.