We have a USB camera device, serviced by usbvideo.sys under Windows 7/8, that includes a push button. The camera device push button is not an HID.
The camera software includes a now unsupported DLL (we asked the OEM) that appears to run a thread or threads that monitors the interrupt packets sent, and sends an event to the application. We can see the interrupt packet bytes using a USB filter driver utility, so we know that usbvideo.sys is passing the interrupt packets. We also know this happens because we can run an alternative app that does not use the unsupported DLL at all, and still see the interrupt packets.
We tried setting up threads with calls to CreateFile (with the relevent USB VID/PID), ReadFile and/or DeviceIOControl, but without success. Everything we tried returns Error#1 (wrong function) or similar. Since the now unsupported DLL does manage to do this, obviously there is a solution.
Create some sample code that successfully monitors the USB packets so that when the button is pressed, an event is created that can be passed to the host app. Please note that a pass-through driver is NOT the solution.
The Selected Freelancer must be able to demonstrate knowledge in dealing with USB devices in the Windows 7 environment, and will most likely have experience with USB firmware.
Our aim is is remove the dependency on the unsupported DLL, and rewriting/updating the video app.