Accessing Miscellaneous Class device from user level code.

I have a USB device which enumerates as "Miscellaneous/Common Class device"

Which is: Device class 239 (Miscellaneous), subclass 2 (Common Class), Protocol 1 (Interface Association)


I can match the device easily using IOServiceAddMatchingNotification and an approriate matching dictionary.

I would like to know if it's possible to access this device from user mode, without having to write a kernel driver?


When I call IOCreatePlugInInterfaceForService(usbDevice,kIOUSBDeviceUserClientTypeID, kIOCFPlugInInterfaceID, &plugInInterface, &score); it returns kIOReturnNoResources which I think means that there is no system-provided class driver. (right?)


So my question is, do I need to write a kernel driver for this device, or can I access it from user mode anyway?

(It works exactly like a HID device, I send it output reports and it sends me input reports).

Accessing Miscellaneous Class device from user level code.
 
 
Q