Rémi Bernon (@rbernon) commented about dlls/winebus.sys/hid.c:
{ if (!iface->hid_device_state.hatswitch_count) iface->hid_device_state.hatswitch_start = offset; iface->hid_device_state.hatswitch_count += count;
iface->hid_device_state.bit_size += 8 * count;
iface->hid_device_state.bit_size += 4 * count; return TRUE;
}
return FALSE;
You would need to handle the padding here.