[StructLayout(LayoutKind.Sequential)]
struct Foo
{
public ushort W;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] X;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public Inner[] data;
}
struct RECORD {
char[] name = new char[16];
int dt1;
}
struct BLOCK {
char[] version = new char[4];
int field1;
int field2;
RECORD[] records = new RECORD[15];
char[] filler1 = new char[24];
}