Jak uzyskać czytelną dla człowieka nazwę urządzenia HID RawInput?
Przełączam aplikację z DirectInput na RawInput do obsługi gamepada i chciałbym przedstawić czytelny dla każdego opis każdego gamepada. Idealnym rozwiązaniem byłby tekst urządzenia, który pojawia się w menedżerze urządzeń, ale opis produktu USB również by to zrobił. Każda metoda powinna działać bez uprawnień administratora.
Jak dotąd znalazłemzestaw wskazówek: wygląda na to, że w rejestrze znajduje się pole tekstoweHKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM
która jest taka sama jak nazwa podana przez DirectInput. To nie jest idealne - mam gamepada, który pojawia się w języku angielskim w menedżerze urządzeń, ale wyświetla się jako 氀 w rejestrze.
Czy istnieje sposób na uzyskanie HANDLE dostarczonego przezWM_INPUT
do opisu menedżera urządzenia?HidD_GetProductString
wygląda obiecująco, ale nie wiem, jak uzyskać uchwyt kolekcji najwyższego poziomu Hid z uchwytu RawInput.
Edytuj: Mam ścieżkę instancji urządzenia (np.\\?\HID#VID_1267&PID_A001#8&1d630df6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
, co może wystarczyć do wyodrębnienia potrzebnych informacji z SetupAPI. Czy ktoś wie, jak dotrzeć do tego, podając ścieżkę instancji?