I don't think we need (or even should) to open the devices, we can just assume everything that is enumerated can be cached.
Is there an issue with opening the devices outside of of not needing to? We need to get the VID/PID at some point. We could try to extract from device path, but that seems like it'd be more fragile. Opening it here also lets us filter out the wine HID mouse/keyboard. It also filters out devices we don't support opening early.
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.
How would this have an effect on other applications? The cache is local to a process/app AFAIU. Unless different threads can have different enabled/disabled/overrides, I don't see how this would be a problem. The apps that do have the controller enabled will generate a `guidInstance`, there shouldn't be a conflict there. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10364#note_137331