Skip to content

Mode switching inconsistencies #374

@nefarius

Description

@nefarius

We now pull the user-specified HID mode from the configuration file, which happens at a state where the device object is already created. The HID mode device property is read by the PnP manager via filter driver when queried for HWID, which happens before the property is refreshed from the configuration file. This can lead to the XI filter being active while the driver mode is still in e.g. SYS mode, causing issues with the different HID report descriptor the filter didn't expect.

A simple workaround is to restart the device twice where the device boots with the correct property value.

For a real fix, it has to be brainstormed how to achieve; we can not delay probing for the mode in the filter PnP routines and we can not read the configuration file content before the device is operational. We could detect the mismatch of the mode from JSON and in the property and react to it somehow, but "auto-restarting" a device in a user-mode driver is tricky and not really supported officially.

Metadata

Metadata

Assignees

Labels

CoreCore/Common Driver TopicbugSomething isn't working

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions