Приложение Магазина Windows 8.1 HidDevice.FromIdAsync возвращает значение NULL

1

Аналогично: http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2cb65387-aad8-444d-a462-c44f3111a877/action?threadDisplayName=win81-hid-device-returning-null

Я пытаюсь получить доступ к HID-устройству для чтения OCR и Mag Stripe, Desko mini MPR. Это venpid 0x0744 0x001D и имеет три интерфейса, [идентификатор использования страницы использования] 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? Брокерские компоненты? Получить новое устройство - как я могу узнать заранее, насколько он совместим?

  • 0
    Вы пробовали второй с ffa0 нижнем регистре? Кроме того, вы пытались добавить все интерфейсы использования? В соответствии с этим вы можете добавить несколько.
Теги:
hid
usb
windows-store-apps
windows-8.1

1 ответ

2
Лучший ответ

Исчерпав все другие возможности и до попытки безумного - UMDF или Brokered Components, я снова прочитал эту статью для отладки: Написание приложений для USB-устройств

На этот раз я обратил внимание на раздел драйверов. Когда я смотрю на драйверы, установленные для моего устройства, я заметил, что установлен драйвер Kaspersky. Итак, для тестирования я удалил Kaspersky, перезагрузил, а затем удалил все записи на устройство в диспетчере устройств и в реестре (HKLM\System\CurrentControlSet\Control\DeviceClasses).

Затем я подключил устройство, запустил тестовую программу, а FromIdAsync работал с использованием ожидаемого использования FFA0 и использования 0001.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню