[dist4]message_header // num_bytes
[u4]0 // version
[u4]0 // interface ID
[u4]2 // name
[u4]0 // flags
[u4]0 // padding
[anchr]message_header
[dist4]method2_params // num_bytes
[u4]0 // version
[dist8]param0_ptr // param0
[dist8]param1_ptr // param1
[anchr]method2_params
[anchr]param0_ptr
[dist4]struct_b // num_bytes
[u4]0 // version
[dist8]struct_a_ptr // struct_a
[anchr]struct_b
[u8]0 // Having extra bytes in the middle is okay if the following objects are
// still properly alignmented.
[anchr]struct_a_ptr
[dist4]struct_a_member // num_bytes
[u4]0 // version
[u8]12345 // i
[anchr]struct_a_member
[anchr]param1_ptr
[dist4]struct_a_param // num_bytes
[u4]0 // version
[u8]67890 // i
[anchr]struct_a_param