Windows 8.1 Store App HidDevice.FromIdAsync返回null

时间:2014-06-11 17:16:54

标签: c# windows-store-apps usb windows-8.1 hid

类似于:http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2cb65387-aad8-444d-a462-c44f3111a877/action?threadDisplayName=win81-hid-device-returning-null

我试图访问用于OCR和Mag Stripe读取的HID设备,即Desko mini MPR。它的venpid是0x0744 0x001D,它有三个接口,[使用页面使用id] 0x0001 0x0002,0x0001 0x0006和0xFFA0 0x0001。

与链接问题类似,FindAllAsync返回DeviceInformation,HidDevice.FromIdAsync返回null,DeviceAccessInformation.CurrentStatus抛出ElementNotFound。 我理解使用页面0x0001被阻止但我希望0xFFA0能够访问。

对于设备功能,我尝试过:

<m2:DeviceCapability Name="humaninterfacedevice">
  <!--Desko Device-->
  <m2:Device Id="vidpid:0744 001D usb">
    <m2:Function Type="usage:0001 *"/>
  </m2:Device>
</m2:DeviceCapability>

<m2:DeviceCapability Name="humaninterfacedevice">
  !--Desko Device-->
  <m2:Device Id="vidpid:0744 001D usb">
    <m2:Function Type="usage:FFA0 0001"/>
  /m2:Device>
</m2:DeviceCapability>

<m2:DeviceCapability Name="humaninterfacedevice">
  <!--Desko Device-->
  <m2:Device Id="vidpid:0744 001D usb">
    <m2:Function Type="usage:FFA0 *"/>
  </m2:Device>
</m2:DeviceCapability>

没有产生预期的结果。

我该怎么做才能访问此设备?自定义UMDF?经纪人的组件?获取新设备 - 我如何提前知道它是否兼容?

1 个答案:

答案 0 :(得分:2)

耗尽所有其他途径,在尝试疯狂之前 - UMDF或Brokered Components,我再次阅读这篇调试文章: Writing Apps for USB Devices

这次我特别注意了司机部分。在查看为我的设备安装的驱动程序时,我注意到安装了卡巴斯基的驱动程序。因此,为了测试,我卸载了Kaspersky,重新启动,然后删除了设备管理器和注册表(HKLM \ System \ CurrentControlSet \ Control \ DeviceClasses)中设备的所有条目。

然后我插入设备,运行我的测试程序,FromIdAsync使用预期的usagePage FFA0和用法0001。