This seems sensible but as you can see this fails several dinput tests. The tests are using virtual HID PID devices, with hand made HID report descriptors, and check what HID reports are being sent to the device when dinput effects are requested. You will need to make sure the changes pass the existing tests, and eventually add a couple of tests (or adjust existing ones) to match and check the scenario you want to address.