This should work:
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct ServerState
{
public ushort Zone;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
public uint[] Init;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
public uint[] Link;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]
public uint[] Spares;
public ushort Sectors;
}