In general we prefer to avoid options, unless really necessary. In this case the option doesn't seem to be necessary and instead we should have a way to send unaccelerated values with rawinput messages and accelerated values with the other messages. You still need to send accelerated input x/y values for non-raw mouse messages, and other cursor position logic anyway. This could be done like the wine-staging patch you used here, with a flag, but then it would require calling NtUserSendHardwareInput twice, and that's probably not great. Otherwise you could pass the raw values in a custom struct, as NtUserSendHardwareInput lparam, possibly with a flag to indicate the presence or absence of raw values (so that other drivers can keep the current behavior). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5869#note_73591