Reputation: 306
I'm trying to access an HID Device for OCR and Mag Stripe reading, the Desko mini MPR. It's venpid is 0x0744 0x001D and it has three interfaces, [usage page usage id] 0x0001 0x0002, 0x0001 0x0006, and 0xFFA0 0x0001.
Like the linked issue, FindAllAsync returns a DeviceInformation, HidDevice.FromIdAsync returns null, and DeviceAccessInformation.CurrentStatus throws ElementNotFound. I understand usage page 0x0001 is blocked but I expect 0xFFA0 to get access.
For device capability, I've tried:
<m2:DeviceCapability Name="humaninterfacedevice">
<!--Desko Device-->
<m2:Device Id="vidpid:0744 001D usb">
<m2:Function Type="usage:0001 *"/>
</m2:Device>
</m2:DeviceCapability>
and
<m2:DeviceCapability Name="humaninterfacedevice">
!--Desko Device-->
<m2:Device Id="vidpid:0744 001D usb">
<m2:Function Type="usage:FFA0 0001"/>
/m2:Device>
</m2:DeviceCapability>
and
<m2:DeviceCapability Name="humaninterfacedevice">
<!--Desko Device-->
<m2:Device Id="vidpid:0744 001D usb">
<m2:Function Type="usage:FFA0 *"/>
</m2:Device>
</m2:DeviceCapability>
none produce the desired result.
What can I do to access this device? Custom UMDF? Brokered Components? Get a new device - how do I know ahead of time it's compatible?
Upvotes: 1
Views: 1171
Reputation: 306
Exhausting all other avenues and prior to attempting the insane - UMDF, or Brokered Components, I read through this debugging article again: Writing Apps for USB Devices
This time I paid careful attention to the drivers section. When looking at the drivers installed for my device I noticed Kaspersky's driver installed. So, for testing, I unstalled Kaspersky, rebooted and then removed all entries to the device in device manager and the registry (HKLM\System\CurrentControlSet\Control\DeviceClasses).
Then I plugged in the device, ran my test program and FromIdAsync worked using the expected usagePage FFA0 and usage 0001.
Upvotes: 2