Я пытаюсь получить доступ к 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? Брокерские компоненты? Получить новое устройство - как я могу узнать заранее, насколько он совместим?
Исчерпав все другие возможности и до попытки безумного - UMDF или Brokered Components, я снова прочитал эту статью для отладки: Написание приложений для USB-устройств
На этот раз я обратил внимание на раздел драйверов. Когда я смотрю на драйверы, установленные для моего устройства, я заметил, что установлен драйвер Kaspersky. Итак, для тестирования я удалил Kaspersky, перезагрузил, а затем удалил все записи на устройство в диспетчере устройств и в реестре (HKLM\System\CurrentControlSet\Control\DeviceClasses).
Затем я подключил устройство, запустил тестовую программу, а FromIdAsync работал с использованием ожидаемого использования FFA0 и использования 0001.
ffa0
нижнем регистре? Кроме того, вы пытались добавить все интерфейсы использования? В соответствии с этим вы можете добавить несколько.