Ошибка при получении: System.Exception: Не удалось получить сведения об интерфейсе устройства. Код ошибки: 122 при использовании HID.Net и USB.Net - PullRequest
0 голосов
/ 05 января 2019

У меня есть проект консольного приложения (.Net Core), использующий библиотеку Hid.Net , конечной целью которой является соединение с игровыми контроллерами HID и чтение данных с него, но как Исходно из понимания библиотеки, я написал код для перечисления подключенных устройств игрового контроллера, к которому я хотел подключиться. Код, который я написал, следовал документации из библиотеки. Но когда я запустил проект, я получил ошибку:

System.Exception: Не удалось получить сведения об интерфейсе устройства. Код ошибки: 122

Это код, который я написал:

using System;
using System.Threading.Tasks;
using Device.Net;
using Hid.Net.Windows;
using Usb.Net.Windows;

namespace IOLibrary
{
    class Program
    {
        static void Main(string[] args)
        {
            CheckforDevices();

            Console.ReadLine();
        }

        static async Task CheckforDevices()
        {
            try
            {
                WindowsHidDeviceFactory.Register();
                WindowsUsbDeviceFactory.Register();

                var devices = await DeviceManager.Current.GetConnectedDeviceDefinitions(0x0079, 0x0006);
                foreach(var device in devices)
                {
                    Console.WriteLine(device.DeviceId);
                }

            }
            catch(Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

Я не понимаю, что я делаю неправильно, поэтому любое объяснение или понимание очень ценится.

1 Ответ

0 голосов
/ 06 января 2019

Редактировать: эта ошибка была исправлена ​​и находится в текущей версии 2.3. Тем не менее, все еще стоит клонировать репо и пройтись по коду, если вы считаете, что устройство не возвращается. Устройство не вернется, если что-то пойдет не так в процессе сбора информации о нем

Предыдущий ответ: Это известная ошибка . Иногда вызовы для получения подробных сведений о Hid не работают, а остальные не выполняются. Я на самом деле исправил эту проблему в этом коммите 664978f5084a6113a2b9e9a0371d5c7d40f30731, но я считаю, что это исправление только в ветке разработки. Если вы извлекаете эту ревизию, код не должен вылетать. Я поставлю новую версию NuGet, чтобы исправить проблему в ближайшее время. Однако вы должны понимать, что если Hid.Net не может получить подробную информацию об устройстве, оно не будет считать его подключенным.

...