¿Cómo obtener un nombre humano legible para el dispositivo RawInput HID?

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 también lo haría la descripción del producto USB. Cualquier método debería funcionar sin permiso del administrador.

Hasta ahora he encontrado unoconjunto de pistas: parece que hay un campo de texto en el registro bajoHKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM que es el mismo que el nombre proporcionado 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 de la manija proporcionada porWM_INPUT a la descripción del administrador del dispositivo?HidD_GetProductString parece prometedor, pero no sé cómo obtener el identificador de la colección de primer nivel de Hid del identificador RawInput.

Editar: Tengo una ruta de instancia de 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 llegar a este dado un camino de instancia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta