Estoy cambiando una aplicación de DirectInput a RawInput para el manejo del gamepad, y me gustaría presentar una descripción legible para cada gamepad. Lo ideal sería el texto del dispositivo que aparece en el administrador de dispositivos, pero la descripción del producto USB también lo haría. Cualquier método debería funcionar sin permiso de administrador.¿Cómo obtener un nombre legible para el dispositivo HID de RawInput?
Hasta ahora he encontrado un set of clues: parece que hay un campo de texto en el registro bajo HKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM
que es el mismo que el nombre provisto por DirectInput. Esto no es perfecto: tengo un gamepad que aparece en inglés en el administrador de dispositivos, pero aparece como 氀 en el registro.
¿Hay alguna manera de obtener desde el MANGO proporcionado por WM_INPUT
a la descripción del administrador de dispositivos? HidD_GetProductString
parece prometedor, pero no sé cómo obtener el identificador de colección de nivel superior de Hid desde el manejador de RawInput.
Editar: Tengo una ruta de la instancia dispositivo (por ejemplo \\?\HID#VID_1267&PID_A001#8&1d630df6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
, que puede ser suficiente para extraer la información que necesito de SetupAPI ¿Alguien sabe cómo comunicarse con esta dado una ruta de la instancia