On Fri Apr 4 21:07:44 2025 +0000, Paul Gofman wrote:
Yes, it seems to be using it (while that worked for me without CM_Get_Parent at least with some controllers). CM_Get_Parent() per se is easy to implement, but to make any sense of it the first thing is that the actual HID drivers (or ntoskrnl rather, maybe) should be setting DEVPKEY_Device_Parent property. But also before that, as I understand, currently Wine HID stack ends in xinput or SDL backends and not in USD or Bluetooth Wine driver, that is probably the major thing here. I think the linked hidapi library code only hits CM_Get_Parent() in hid_internal_detect_bus_type() and failure there results in HID_API_BUS_UNKNOWN, which doesn't fail the whole thing but misses some properties.
Maybe in theory those backends may expose device properties to partially mimic USB or BTH devices and make this library fully happy, but I am not sure, didn't really look into that part.