Thanks in Advance. I am using keil HID example and win-api to make a usb hid device for sending and receiving data using interrupt transfer. I define the package size as 64 bytes, and of cause if the data sended by the device less than 64 bytes, the host(Overlapped mode) will come up with a timeout error. And I do search in the forum, everybody says I should send a ZLP(zero length package), but I could not find any detail about what ZLP real is, and how to send a ZLP by the device or by the host. So I will appreciate if anybody tell me what can I do. Forgive my fool. Thanks again.
Thanks Tsuneo. I have got it clear. The vendor device can send any length with ZLP throught interrupt pipe, but the HID can not. I mix then up. Thanks again.
Sorry for my mistake.
Now I realize that my previous post was incorrect.
http://www.keil.com/forum/13037/ Tsuneo Chinzei, 20-Aug-2008 21:05 GMT Report descriptor declares the report format(s). HID device driver doesn't accept any report out of this format. ie. it drops such a report whose size doesn't match to any report on the report descriptor. Then, padding is required to fit to (one of) declared report size.
www.tracesystemsinc.com/.../sbook2.htm
It seems that for a HID class, there are several types of reports.?
"HID report" is general term, which collects input / output / feature reports.
The report type is determined by the place where the report passes. Interrupt IN endpoint - input report Interrupt OUT endpoint - output report EP0 IN (Get_Report request) - input / feature report EP0 OUT (Set_Report request) - output / feature report
Tsuneo