Sending HID Reports by User-Mode Applications
A user-mode application should use WriteFile (as described in the Microsoft Windows SDK) as its main approach to continuously send output reports to a HID collection. An application can also use HidD_SetXxx routines to send output reports and feature reports to a collection. However, an application should only use these routines to set the current state of a collection. Some devices might not support HidD_SetOutputReport and will become unresponsive if this routine is used.
An application should use write requests to send output reports to a HID collection. After a user-mode application has created an output report, it can send an output report to a collection using WriteFile.
An application can use the following HIDClass support routines to send HID reports to a HID collection:
Sends an output report to a HID collection (Windows XP and later versions).
Sends a feature report to a HID collection.