#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.