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?

questionAnswers(2)

yourAnswerToTheQuestion