On Mon Apr 20 14:18:36 2026 +0000, Connor McAdams wrote:
I've changed this now to be checked for disablement/override when enumerating over the currently connected HID devices, but deferring the handling of overridden devices until `EnumDevices()` or `CreateDevice()` is called. AFAICT, an application will either get one device or the other (the IG device or the overridden one), so IMO it's fine for them to share the same `guidInstance` value, given they have the same VID/PID/index in both cases. I've also tested the override behavior in joy.cpl to confirm this is working properly. I still don't think we should do that here. It would be simpler to just cache the list of HID devices without doing any kind of filtering here. I don't think we need (or even should) to open the devices, we can just assume everything that is enumerated can be cached.
Another instance is the device_instance_is_disabled setting, this is also app-specific, but you take it into account when enumerating the devices it'll have some effect on the cache and potentially on other applications. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10364#note_137239