Невозможно создать UsbDevice из DeviceInformation.Id
Я пытаюсь подключиться к устройству (SecuGen Hamster Pro 20) через Windows.Devices.Usb API, используя универсальное приложение Windows только для ПК (без телефонов) (WinRT).
Устройство представляет собой сканер отпечатков пальцев.
Я сделал все шаги, найденные в Интернете, чтобы сделать это:
Я искал все устройства, используя:
var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync();
Это возвращает около 1400 устройств. После некоторой фильтрации, используя:
var resultList = myDevices.Where(s => s.Name.ToLower().Contains("secu")).ToList<DeviceInformation>();
resultList
содержит 3 устройства в моей машине (я пробовал на другой машине и нашел 10 результатов на некоторых).
Я не использовал перегрузку для поиска устройствDeviceInformation.FindAllAsync(String aqsFilter)
потому что он возвращает 0 результатов, хотя я уверен, что все сделал правильно (использовал правильный VID & PID)
Проблема здесь в том, когда я пытаюсь создатьUsbDevice
объект из любого из 3 результатов, используя:
UsbDevice device = await UsbDevice.FromIdAsync(resultList[0].Id);
Возвращаемое значение равно нулю, я все их перепробовал (resultList[0]
, resultList[1]
, resultList[2]
) без удачи.
Я настроил возможности, используя:
<DeviceCapability Name="usb">
<Device Id="vidpid:1162 2200">
<Function Type="name:vendorSpecific"/>
</Device>
</DeviceCapability>
Я также пытался создатьUsbDevice
объект из любого из 1400 устройств, возвращенных изDeviceInformation.FindAllAsync()
но все вернуло ноль и даже некоторые выдают исключение, которое говоритthe system cannot find the file specified 0x80070002
Я пытался читатьDeviceAccessInformation
для устройства это вернулоDeviceAccessStatus.Unspecified
Кто-нибудь может привести меня к тому, что мне здесь не хватает?