Rémi Bernon (@rbernon) commented about dlls/dinput/tests/hid.c:
.report_id = report_id, .report_len = report_len - (report_id ? 0 : 1), .report_buf = {report_id ? report_id : 0xcd,0xcd,0xcd,0xcd,0xcd}, - .ret_length = 3, + .ret_length = report_len,
This test was meant to catch the fact that hidclass.sys ignores what the minidriver returns and uses the output report length regardless. I'm not sure it's very useful or that it matters much, but still, it seems that this change is simply hiding that fact. Using a larger value here, like 5, still ends up with the value fixed up to the right buffer size so it's not just a matter of subtraction cancelling the returned value. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11204#note_144186