Чтение дескрипторов USB в приложении на универсальной платформе Windows (UWP)

#c# #usb #uwp #hid #descriptor

#c# #usb #uwp #hid #дескриптор

Вопрос:

У меня есть скрытое устройство в приложении на универсальной платформе Windows, для которого я хотел бы прочитать дескрипторы USB.

Это такая информация, как производитель, серийный номер и т.д.

Скрытое устройство, похоже, не поддерживает это. Похоже, что класс UsbDevice работает, но он не позволяет создавать из устройства класса HID.

https://msdn.microsoft.com/en-us/library/windows/hardware/dn303351 (v= против 85).aspx

Я попытался создать USB-устройство из идентификатора скрытого устройства, но это не удалось.

Кто-нибудь пробовал это раньше?

Ответ №1:

Я не уверен, что это точный ответ на 100%, потому что я его еще не тестировал.

Но быстрая мысль об этом заключается в использовании взаимодействия с платформой.

Итак, мы можем использовать приведенный ниже API для получения серийного номера HID, см. https://msdn.microsoft.com/en-us/library/windows/hardware/ff539683 (v= против 85).aspx

После того, как вы объявили его в своем коде на C #, вы можете его вызвать.

     [DllImport("hid.dll", SetLastError = true)]
    static extern bool HidD_GetSerialNumberString(IntPtr HidDeviceObject, ref byte Buffer, Int32 BufferLength);
  

Для вашей справки есть хорошая скрытая библиотека с открытым исходным кодом. https://github.com/mikeobrien/HidLibrary

Дайте мне знать, если это поможет.

Комментарии:

1. К сожалению, вам не разрешено использовать внешние дескрипторы в приложении UWP :/

2. @soren.bendtsen, почему бы и нет? Я проверил, что он прошел сертификацию Windows Store.