なんでジェネリック型にしようとか考えちゃってんの?
しかも構造体がランタイム定義って情報は後出しじゃん。ったくもう……

struct A{...};

[StructLayout( LayoutKind.Sequential )]
class C
{
 public A a;
}

[DllImport("a.dll")] static extern Func( C c );

でいけるだろハゲ