I'm a bit surprised that `rawinput_from_hardware_message` returns an error, especially in `GetRawInputBuffer` where we should have requested the correct number of elements from the server call, do you have more detail why it happens?
The issue I'm seeing is that if we requested too many elements from the server, I think that breaking the loop short will drop them.